避免成员变量的默认构造函数

时间:2013-03-14 21:28:22

标签: c++ default-constructor

我有一个包含另一个类的成员变量的类:

class MeasurementUnit {
private:
    MeasurementMultiplier _multiplier;

实际上我不需要MeasurementMultiplier的默认构造函数,因为实际上我会使用参数MeasurementMultiplier(a,b,c)进行初始化,我会 - 但不能直接:

C2864: 'MeasurementUnit::_multiplier' :
only static const integral data members can be initialized within a class

所以我需要默认构造函数,而不需要编译error: C2512: 'MeasurementUnit' : no appropriate default constructor available

我可以避免使用默认构造函数吗?

2 个答案:

答案 0 :(得分:6)

在类MeasurementUnit的所有构造函数中,您需要初始化初始化列表中的成员变量_multiplier。例如:

MeasurementUnit::MeasurementUnit()
  : _multiplier(1,2,3)
{}

答案 1 :(得分:1)

使用MIL - 会员初始化列表 MIL