可能重复:
在构造函数中初始化,最佳实践?
我是C++的新手.
假设我们有这个类定义:
Class MyClass {
int a;
int b;
//....
}
Run Code Online (Sandbox Code Playgroud)
我想知道两个类构造器之间的区别是什么:
public:
MyClass(int a, int b) : a(a), b(b) {}
Run Code Online (Sandbox Code Playgroud)
(我会说Java风格):
MyClass(int a, int b) {
this->a = a;
this->b = b;
}
Run Code Online (Sandbox Code Playgroud)
我想第一个在C++中更好; 对?为什么?
第一个(使用初始化列表)将数据成员初始化为给定值.第二个首先初始化它们,然后为它们分配值.这就是首选的原因.那里没有不必要的分配操作.
当您的数据成员构建和/或分配成本昂贵时,这一点尤其重要.还要记住,某些类型不是默认构造的,因此必须使用初始化列表.
| 归档时间: |
|
| 查看次数: |
99 次 |
| 最近记录: |