Lines 22–25 output the contents of object derived
again by using the get member functions of class Derived
. However, there is an ambiguity problem, because this object contains two getData
functions, one inherited from class Base1
and one inherited from class Base2
. This problem is easy to solve by using the scope resolution operator. The expression derived.Base1::getData()
gets the value of the variable inherited from class Base1
(i.e., the int
variable named value
) and derived.Base2::getData()
gets the value of the variable inherited from class Base2
(i.e., the char
variable named letter
). The double
value in real
is printed without ambiguity with the call derived.getReal()
—there are no other member functions with that name in the hierarchy.
3.144.41.229