Virtual Base Classes
Inheritance Conflicts
- Member Conflicts
- Name conflicts can occur - same member name from more than one base
class
- Derived class can overshadow base class members name
- Use scope resolution operator to resolve conflicts
- Multiple Inheritance Conflicts
- Derived class may combine more than one copy of a member
- Base class may combine more than one copy of a member
Virtual Base Classes
- Prevents inheriting multiple copies of same base class members
- Keyword virtual in inheritance link
- Base classes made virtual class B { // base class protected: int
X,Y;}; class D1 : public virtual B {protected: int Z;} ;class D2 : public
virtual B {protected: int Z;}; class D3 : public D1, public D2 { …};
- All base classes used in multiple inheritance