在这种特殊情况下,使用成员初始化程序列表与在构造函数中分配值之间是否有区别?在内部和生成的代码之间,是否存在真正的区别:MyClass::MyClass(): _capacity(15), _data(NULL), _len(0){}和MyClass::MyClass(){
_capacity=15;
_data=NULL;
_len=0}谢谢.。
3 回答
四季花海
TA贡献1811条经验 获得超5个赞
holdtom
TA贡献1805条经验 获得超10个赞
您需要使用初始化列表来初始化常量成员、引用和基类。
struct aa{ int i; const int ci; // constant member aa() : i(0) {} // will fail, constant member not initialized};struct aa{ int i; const int ci; aa() : i(0) { ci = 3;} // will fail, ci is constant};struct aa{ int i; const int ci; aa() : i(0), ci(3) {} // works};
struct bb {};struct aa{ bb& rb; aa(bb& b ) : rb(b) {}};// usage:bb b;aa a(b);
struct bb {};struct dd{ char c; dd(char x) : c(x) {}};struct aa : dd{ bb& rb; aa(bb& b ) : dd('a'), rb(b) {}};
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
_capacity
, _data
_len
class MyClass{private: const int _capacity; const void *_data; const int _len;// ...};
const
MyClass::MyClass() : _capacity(someMethod()), _data(someOtherMethod()), _len(yetAnotherMethod()){}
const
- 3 回答
- 0 关注
- 388 浏览
添加回答
举报
0/150
提交
取消