我有一个包含另一个类的成员变量的类:
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
我可以避免使用默认构造函数吗?
答案 0 :(得分:6)
在类MeasurementUnit
的所有构造函数中,您需要初始化初始化列表中的成员变量_multiplier
。例如:
MeasurementUnit::MeasurementUnit()
: _multiplier(1,2,3)
{}
答案 1 :(得分:1)
使用MIL - 会员初始化列表 MIL