/************************************************************************ *
The following example shows how to call base constructors from derived
classes:
* ************************************************************************/
class B1 { int b; public: B1(); B1(int i) : b(i) { /* ... */ } }; class B2 { int b; protected: B2(); B2(int i); }; B2::B2(int i) : b(i) { /* ... */ } class B4 { public: B4(); // public constructor for B4 int b; private: B4(int); // private constructor for B4 }; // . // . // . class D : public B1, public B2, public B4 { int d1, d2; public: D(int i, int j) : B1(i+1), B2(i+2) , B4(i) {d1 = i; d2 = j; } // error, attempt to access private constructor B4() D(int i, int j) : B1(i+1), B2(i+2) {d1 = i; d2 = j;} // valid, calls public constructor for B4 };