在C ++中编程时,首选两种初始化样式中的哪一种,A类在构造函数中初始化值,B在数据成员具有默认初始化的B中?
//A.h
class A{
A();
int value;
string name;
bool aSwitch;
}
//A.cpp
...
A::A():
value(0),
name("joe"),
aSwitch(false)
{ }
或
//B.h
class B{
B();
int value = 0;
string name = "joe";
bool aSwitch = false;
}
//B.cpp
...
B::B()
{ }
这两种风格中有任何优点或缺点吗?
答案 0 :(得分:0)
如果你有多个构造函数,并且一个类成员总是要在每个构造函数中使用相同的值进行初始化,那么在声明它时应该初始化它。在所有其他情况下,最好在构造函数初始化列表中初始化。
示例:
a
在上面的示例中,如果您希望a
对于任一构造函数始终为0,那么要删除重复,您将在声明它时初始化ID Name Suburb State Postcode Email
1 Hurstville Clinic Hurstville NSW 1493 hurstville@myclinic.com.au
2 Sydney Centre Clinic Sydney NSW 2000 sydney@myclinic.com.au
3 Auburn Clinic Auburn NSW 2144 auburn@myclinic.com.au
4 Riverwood Clinic Riverwood NSW 2210 riverwood@myclinic.com.au
5 Fingal Bay Clinic Fingal Bay NSW 2315 fingal bay@myclinic.com.au
。