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

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

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

Dan*_*rey 6

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

MeasurementUnit::MeasurementUnit()
  : _multiplier(1,2,3)
{}
Run Code Online (Sandbox Code Playgroud)