假设我们有两个版本的同一个类Simple:
1
#include <iostream>
using namespace std;
class Simple
{
public:
Simple() { }
Simple(int c)
{
data = c;
cout << data << endl;
}
private:
int data;
};
int main()
{
Simple obj(3);
return 0;
}
2
#include <iostream>
using namespace std;
class Simple
{
public:
Simple() { }
Simple(int c) : data(c) { cout << data << endl; }
private:
int data;
};
int main()
{
Simple obj(3);
return 0;
}
编译,运行并给出相同的结果。应该使用哪一个,它们之间是否存在内部差异?感谢。
答案 0 :(得分:2)
最好使用初始化列表来初始化成员变量,这是它的用途。在复杂对象的情况下,也可能有效率优势,因为您可以跳过默认初始化。如果该成员没有默认构造函数,或者是const
或引用,那么您将别无选择,只能将其放入初始化列表中。
我更喜欢将函数体保持为单独的行,以防我需要在其中设置断点。