当基类构造函数没有参数或没有定义构造函数时,派生类可以不向基类传递参数,甚至可以不定义构造函数。当基类含有带参数的构造函数时,派生类必须定义构造函数,提供把参数传递给基类构造函数的途径。如果派生类的基类也是派生类,每个派生类子须负责其直接基类成员的初始化。
#include<iostream>
using namespace std;
class B{
public:
B(int n)
{cout<<"constructing B class\n";
i=n;
}
~B()
{
cout<<"destructing B class\n";
}
void dispB()
{
cout<<"i="<<i<<endl;
}
private:
int i;
};
class C:public B{
public:
C(int n,int m):B(m)
{
cout<<"constructing C class\n";
j=n;
}
~C()
{
cout<<"destructing C class\n";
}
dispC()
{
dispB();
cout<<"j="<<j<<endl;
}
private:
int j;
};
int main()
{
B b(10);
b.dispB();
cout<<"c.dispB()============="<<endl;
C c(50,60);
c.dispB();
cout<<"c.dispC()=============="<<endl;
c.dispC();
return 0;
}