18.3.2. Conversions and Multiple Base Classes
Under single inheritance, a pointer or a reference to a derived class can be converted automatically to a pointer or a reference to an accessible base class (§ 15.2.2, p. 597, and § 15.5, p. 613). The same holds true with multiple inheritance. A pointer or reference to any of an object’s (accessible) base classes can be used to point or refer to a derived object. For example, a pointer or reference to ZooAnimal
, Bear
, or Endangered
can be bound to a Panda
object:
// operations that take references to base classes of type Pandavoid print(const Bear&);void highlight(const Endangered&);ostream& operator<<(ostream&, const ZooAnimal&);Panda ying_yang("ying_yang");print(ying_yang); // passes Panda
Get C++ Primer, Fifth Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.