The syntax for the list of base classes is:
>>--derived_class--:-->
/-,---------------------------------------------------------\
|
>------------------------------------qualified_class_specifier----><
|-virtual--------------------|
| |-public----| |
| |-private---| |
| \-protected-/ |
\---public-------------------/
|-private---| \-virtual-/
\-protected-/
The qualified class specifier must be a class that has been previously declared in a class declaration.
The virtual keyword can be used to declare virtual base classes.
The following example shows the declaration of the derived
class D and the base classes V, B1, and B2. The class B1 is both
a base class and a derived class because it is derived from class
V and is a base class for D.
class V { /* ... */ };
class B1 : virtual public V { /* ... */ };
class B2 { /* ... */ };
class D : public B1, private B2 { /* ... */ };