Hor*_*ter 0 c++ default-constructor
我有一个类与另一个类的成员变量:
class MeasurementUnit {
private:
MeasurementMultiplier _multiplier;
Run Code Online (Sandbox Code Playgroud)
实际上我不需要一个默认的构造函数MeasurementMultiplier,因为实际上我会用参数初始化MeasurementMultiplier(a,b,c),我会 - 但不能直接:
C2864: 'MeasurementUnit::_multiplier' :
only static const integral data members can be initialized within a class
Run Code Online (Sandbox Code Playgroud)
所以我需要默认的构造函数,没有它不编译 error: C2512: 'MeasurementUnit' : no appropriate default constructor available
我可以避免需要默认构造函数吗?
在类的所有构造函数中MeasurementUnit,您需要_multiplier在初始化列表中初始化成员变量.例:
MeasurementUnit::MeasurementUnit()
: _multiplier(1,2,3)
{}
Run Code Online (Sandbox Code Playgroud)