Virtual Inheritance
Technique learned in CS247 - Software Engineering Principles that basically ensures that only one copy of a base class’s member variables are inherited by grandchild derived classes.
Consider: Diamond Problem
Since two classes B
and C
inherit from a class A
, and a class D
inherits from both B
and C
, then D
will contain two copies of A
’s member variables: one via B
, and one via C
.
Now instead we can have classes B
and C
inherit virtually from class A
, then objects of class D
will contain only one set of the member variables from class A
.
Note
Very useful technique for Multiple Inheritance