在编写构造函数时建议使用构造函数初始化列表
2012-07-11 16:05
253 查看
c++中构造函数初始化式有两种方式:
使用构造函数初始化列表进行初始化
省略初始化列表并在构造函数体内对数据成员进行赋值达到初始化的目的
除了两个例外,对非类类型的数据成员进行赋值或者使用初始化列表进行初始化在性能和结果上都是等价的。
例如:
正确的构造函数的编写方式是:
ConstRef::ConstRef(int ii):i(ii),ci(ii),ri(ii) { }
所以在此总结:在编写构造函数的时候尽量使用构造函数初始化列表来进行初始化
使用构造函数初始化列表进行初始化
省略初始化列表并在构造函数体内对数据成员进行赋值达到初始化的目的
除了两个例外,对非类类型的数据成员进行赋值或者使用初始化列表进行初始化在性能和结果上都是等价的。
例如:
class ConstRef{ public : ConstRef(int ii); private : int i; const int ci; int & ri; } ConstRef::ConstRef(int ii) { i=ii; ci=ii;//error ri=ii;//error }记住,可以初始化const对象或引用类型的对象,但是不能对他们进行赋值。
正确的构造函数的编写方式是:
ConstRef::ConstRef(int ii):i(ii),ci(ii),ri(ii) { }
所以在此总结:在编写构造函数的时候尽量使用构造函数初始化列表来进行初始化
相关文章推荐
- [编写高质量代码:改善java程序的151个建议]建议84 使用构造函数协助描述枚举项
- const成员或者引用成员必须使用构造函数初始化列表的方式
- [编写高质量代码:改善java程序的151个建议]建议77 使用Shuffle打乱列表
- 使用初始化成员列表初始化数据与在构造函数中初始化数据
- 在C + + 0 x新标准中,使用构造函数初始化列表和序列
- 使用构造函数初始化列表
- C++ 中使用构造函数初始化列表的原因
- 一种编写C++构造函数中初始化列表的格式
- 编写高质量代码改善C#程序的157个建议——建议105:使用私有构造函数强化单例
- C++ 中使用构造函数初始化列表和普通构造函数内部初始化的区别
- 为什么对于类的const成员,只能使用初始化列表,而不能在构造函数内部进行赋值操作
- C++-什么时候需要在类的构造函数中使用初始化列表
- 编写高质量代码改善C#程序的157个建议——建议19:使用更有效的对象和集合初始化
- 何时使用构造函数初始化列表?
- C++中使用初始化列表比在构造函数中对成员变量赋值更高效
- [编写高质量代码:改善java程序的151个建议]建议71 推荐使用subList处理局部列表
- c++ 必须使用构造函数初始化列表初始化的情况