Mega Code Archive

 
Categories / C++ / Class
 

Virtual public inheritance

#include <iostream> using namespace std; class base  {  public:    int i;  }; class derived1 : virtual public base  {  public:    int j;  }; class derived2 : virtual public base  {  public:    int k;  }; class derived3 : public derived1, public derived2 {  public:    int sum; }; int main(void) {    derived3 object;    object.i = 10;             // now i is unambiguous    object.j = 20;    object.k = 30;    object.sum = object.i + object.j + object.k;    cout << object.i << " ";    cout << object.j << " " << object.k << " ";    cout << object.sum << endl; }