Because a class can be an indirect base class to a derived
class more than once, C++ provides a way to optimize the way such base
classes work. Virtual base classes offer a way to save space and avoid
ambiguities in class hierarchies that use multiple inheritance.
Each nonvirtual object contains a copy of the data members
defined in the base class. This duplication wastes space and requires
you to specify which copy of the base class members you want whenever
you access them.
When a base class is specified as a virtual base, it can act as an indirect base more than once without duplication of its data members. A single copy of its data members is shared by all the base classes that use it as a virtual base.
When declaring a virtual base class, the virtual keyword appears in the base lists of the derived classes.
When a base class is specified as a virtual base, it can act as an indirect base more than once without duplication of its data members. A single copy of its data members is shared by all the base classes that use it as a virtual base.
When declaring a virtual base class, the virtual keyword appears in the base lists of the derived classes.
No comments:
Post a Comment