c++中子对象的初始化可在复合类的构造函数的函数体内进行吗?还是子对象的初始化只能在初始化列表中进行?
2012-04-04 01:01
351 查看
严格意义上的子对象初始化只能在复合类的构造函数的初始化列表中进行。 作为变通,你可以在子对象所属的类中把真正执行初始化工作的代码写成一个普通公开成员函数,在复合类的构造函数体内调用这个函数。 class A{ int data; public: A(){} A(int d):data(d){} void init(int d){data=d;} }; class B{ A a; public: B(int d):a(d)//常规方法,在初始化列表中初始化子对象 { } }; class C{ A a; public: C(int d)//变通方法,在函数体中初始化子对象 { a.init(d); } };
相关文章推荐
- C++的const和引用只能在初始化列表里初始化而不能在构造函数体内赋值初始化
- C++构造函数的初始化列表和函数体内赋值有什么不同?
- c++中什么类型的成员变量只能在构造函数的初始化列表中进行
- c++高级---C++类构造函数初始化列表以及对象成员的构造
- 为什么对于类的const成员,只能使用初始化列表,而不能在构造函数内部进行赋值操作
- C++中构造函数中使用函数进行初始化
- C++的6大成员函数,构造函数(初始化列表),析构函数,拷贝构造函数,运算符重载,const成员函数
- c++对象、构造函数和初始化列表
- C++中的初始化列表中可以对那些变量或对象进行初始化
- C++中的初始化列表中可以对那些变量或对象进行初始化
- C++ 中使用构造函数初始化列表和普通构造函数内部初始化的区别
- C++初始化列表时,为什么不能直接在构造函数中输出
- [C++应用程序性能优化]列表初始化和构造函数内初始化
- C++中的构造函数初始化列表的使用和分析
- 【任务1】设计三角形类,通过增加构造函数,使对象在定义时能够进行初始化
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- [C++] 繁杂的语法之构造函数初始化列表
- C++ 构造函数、默认构造函数、析构函数和对象初始化
- OC中对象的初始化(便利初始化函数以及便利构造函数)
- c++ 带有初始化成员列表的类构造函数 定义与实现分离 方法