题目
创建一个从B继承并具有类C成员对象的类D。添加代码以显示何时调用构造函数和析构函数。
代码
#include <iostream>
using namespace std;
class A {
int i;
public:
A(int ii) : i(ii) {cout << "A构造函数调用"<<endl;}
~A() {cout << "~A析构函数调用"<<endl;}
void f() const {}
};
class B {
int i;
public:
B(int ii) : i(ii) {cout << "B构造函数调用"<<endl;}
~B() {cout << "~B析构函数调用"<<endl;}
void f() const {}
};
class C : public B
{
A a;
public:
C(int ii) : B(ii), a(ii) {cout << "C构造函数调用"<<endl;}
~C() {cout << "~C析构函数调用"<<endl;}
void f() const {
a.f();
B::f();
}
};
class D : public B
{
public:
D (int ii): B(ii), cc(ii){ cout << "D构造函数调用"<<endl;}
~D (){ cout << "~D析构函数调用"<<endl;}
private:
C cc;
};
int main() {
D dd(11);
}