关于构造函数的调用问题
#include <iostream.h>
class BASE
{
public :
BASE(int x, int y)
{
cout < < "\nBASE\n ";
a=x;
b=y;
cout < < "a= " < <a < < " b= " < <b < <endl;
}
~BASE()
{
cout < < "\nxigou BASE\n ";
}
protected:
int a;
int b;
};
class C : public BASE
{
public:
C::C(int x, int y):BASE(x, y)
{
cout < < "\nC\n ";
}
~C()
{
cout < < "\nxigou C\n ";
}
};
class P: public C
{
public:
P::P(int x, int y):C(x, y)
{
cout < < "\nP\n ";
}
~P()
{
cout < < "\nxigou P\n ";
}
};
main()
{
P obj(3, 4);
//return 0;
}
是不是 先调用C的构造函数, 然后C的构造函数再调用BASE的构造函数?
[解决办法]
先调用基类的。再调用派生类的。
[解决办法]
BASE-> C-> P
[解决办法]
派生类的构造函数只能调用气直接基类的构造的函数
=======================
对啊,孙子只能调用它爹的构造函数,它爹的构造函数在执行的时候调用它爷爷的构造函数(对于它爹来说,也是只能用它的爹的),这样层层递进^_^