Hiding class pointers -- was it a good idea?
Walter Bright
newshound1 at digitalmars.com
Wed Aug 15 14:35:17 PDT 2007
Bill Baxter wrote:
> I'm starting to seriously wonder if it was a good idea to hide the
> pointers to classes. It seemed kinda neat when I was first using D that
> I could avoid typing *s all the time. But as time wears on it's
> starting to seem more like a liability.
Having classes be by reference only has some serious advantages:
1) Classes are polymorphic and inheritable. By making them reference
only, the "slicing" problem inherent in C++ is completely and cleanly
avoided.
2) You can't write a class in C++ without paying attention to assignment
overloading and copy constructors. With classes as a reference type,
these issues are simply irrelevant.
3) Value types just don't work for polymorphic behavior. They must be by
reference. There's no way in C++ to ensure that your class instances are
used properly by reference only (hence (2)). In fact, in C++, it's
*extra work* to use them properly.
Value types are fundamentally different from reference types. D gives
you the choice.
More information about the Digitalmars-d
mailing list