初始化列表
#include<iostream>
#include<string>
using namespace std;
class A
{
public:
A(int a)
{
cout << "A构造" << endl;
}
~A()
{
cout << "A析构" << endl;
}
};
class B
{
public:
B(int a,int b)
{
cout << "B构造" << endl;
}
~B()
{
cout << "B析构" << endl;
}
};
class C
{
public:
C()
{
cout << "C构造" << endl;
}
~C()
{
cout << "C析构" << endl;
}
};
class D
{
public:
int val;
D(int aa) :aaaa(aa), bbbb(1, aa){}
D() :aaaa(3), bbbb(1, 2), val(100)
{
val = 200;
cout << "D构造" << endl;
}
~D()
{
cout << "D析构" << endl;
}
A aaaa;
B bbbb;
C cccc;
};
int main()
{
{
D dddd;
cout << dddd.val << endl;
}
return 0;
}