/************************************************************************ *
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
};