#include<iostream>
using namespace std;
class A{
public:
A(int a){
cout << "A()..." << endl;
m_a = a;
}
~A(){
cout << "~A()..." << endl;
}
void printA(){
cout << "a = " << m_a << endl;
}
private:
int m_a;
};
class ABC{
public:
ABC(int a,int b,int c){
cout << "ABC(int a,int b,int c)" << endl;
m_a = a;
m_b = b;
m_c = c;
}
~ABC(){
cout << "~ABC()" << endl;
}
private:
int m_a;
int m_b;
int m_c;
};
class ABCD{
public:
// ABCD(int a,int b,int c,int d) : m_abc(a,b,c){
// m_d = d;
// }
ABCD(int a,int b,int c,int d) : m_abc(a,b,c),m_d(d){
}
ABCD1(ABC&abc,int d) : m_abc(abc){
m_d = d;
}
private:
int m_d;
ABC m_abc;
};
class B{
public:
//构造对象成员的顺序跟初始化列表的顺序无关
//而是跟成员对象的定义顺序有关
B(A &a1,A &a2,int b) : m_a1(a1),m_a2(a2)
{
cout << "B(A &a1,A &a2,int b)" << endl;
m_b = b;
}
~B(){
cout << "~B()..." << endl;
}
void printB(){
cout << "b = " << m_b << endl;
m_a1.printA();
m_a2.printA();
}
private:
int m_b;
A m_a1;
A m_a2;
};
int main(){
// A a1(10),a2(100);
// B b(a1,a2,1000);
// b.printB();
ABC abc(10,20,30);
ABCD(1,2,3,4);
ABCD abcd1(abc,30);
return 0;
}
c++ 构造函数的初始化列表
猜你喜欢
转载自blog.csdn.net/weixin_46381608/article/details/108555050
今日推荐
周排行