0

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

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

我可以避免需要默认构造函数吗?

4

2 回答 2

6

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

MeasurementUnit::MeasurementUnit()
  : _multiplier(1,2,3)
{}
于 2013-03-14T21:31:37.263 回答
1

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

于 2013-03-14T21:33:55.993 回答