October 1997
Intermediate to advanced
800 pages
20h 48m
English
A class design boilerplate helps you create consistent classes.
Initialization calls constructors. Assignment calls operator functions.
Classes with nonstatic constant data members generate compilation errors for default assignment. The compiler uses default memberwise copies if you do not overload assignment. Overloaded operator=() must be a nonstatic class member function.
All overloaded operators are inherited except operator=().
Always overload operators in classes that require them, especially if conversion rules produce legal (but incorrect) expressions with overloaded cast operators.
Overloading iostream operators (<< and >>) for class objects must use nonmember functions.
A class may grant a friend function access to ...