避免成员变量的默认构造函数 [英] Avoid default constructor for member variable

查看:147
本文介绍了避免成员变量的默认构造函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

  class MeasurementUnit {
private:
MeasurementMultiplier _multiplier;

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

  C2864:'MeasurementUnit :: _ multiplier':
只有静态const整数数据成员可以在类中初始化
错误:C2512:'MeasurementUnit':没有适当的默认构造函数可用



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

解决方案

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

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


I have a class with a member variable of another class:

class MeasurementUnit {
private:
    MeasurementMultiplier _multiplier;

Actually I would not need a default constructor for MeasurementMultiplier, because actually I will initialize with parameters MeasurementMultiplier(a,b,c), and I would - but can't directly:

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

So I need the default constructor, without it does not compile error: C2512: 'MeasurementUnit' : no appropriate default constructor available

Can I avoid needing the default constructor?

解决方案

In all constructors of your class MeasurementUnit, you need to initialize the member variable _multiplier in the initializer list. Example:

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

这篇关于避免成员变量的默认构造函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆