在C ++中初始化类的首选方法是什么

时间:2018-02-09 11:55:59

标签: c++

在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()
{ }

这两种风格中有任何优点或缺点吗?

1 个答案:

答案 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