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