Skip to Content
Navigating C++ and Object-Oriented Design
book

Navigating C++ and Object-Oriented Design

by Paul Anderson, Gail Anderson
October 1997
Intermediate to advanced
800 pages
20h 48m
English
Pearson
Content preview from Navigating C++ and Object-Oriented Design

11.4. Virtual Functions

It's not always possible at compile time to determine which derived object a base class pointer or reference refers to. Virtual functions provide resolution at run time. This section explores dynamic binding and its implementation with virtual functions.

Dynamic Binding

Both Person and Student have separate output() definitions that we call with objects, references, or pointers. A more natural approach overloads operator<<() to display the attributes of Person and Student objects.

ostream & operator<<(ostream & os, const Person & p) {
   p.output(os);
   return os;
}

Since the second argument matches both a Person object (exact match) and a Student object (derived to base standard conversion), this approach is appealing. Why? ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Exploring C++20: The Programmer's Introduction to C++

Exploring C++20: The Programmer's Introduction to C++

Ray Lischner

Publisher Resources

ISBN: 0135327482Purchase book