In this chapter, you learned how to use the const_cast
operator to remove the const
qualification of a variable. We showed how to use namespace
s to ensure that every identifier in a program has a unique name and explained how namespace
s can help resolve naming conflicts. You saw several operator keywords to use if your keyboards do not support certain characters used in operator symbols, such as !
, &
, ^
, ~
and |
. We showed how the mutable
storage-class specifier enables you to indicate that a data member should always be modifiable, even when it appears in an object that’s currently being treated as a const
. We also showed the mechanics of using pointers to class members and the ->*
and .*
operators. Finally, we introduced multiple inheritance and discussed problems associated with allowing a derived class to inherit the members of several base classes. As part of this discussion, we demonstrated how virtual
inheritance can be used to solve those problems. In the next chapter, we begin our object-oriented design and implementation case study.