【问题标题】:"Provides no initializer for reference member..."“不为引用成员提供初始化程序......”
【发布时间】:2015-07-16 03:44:26
【问题描述】:

经过一些谷歌搜索后,我找不到这个问题的答案。如何初始化它,为什么需要?

#include "CalculatorController.h"


CalculatorController::CalculatorController(SimpleCalculator& aModel, ICalculatorView& aView)
{\\(this is the bracket informing me of the error)

fModel = aModel;
fView = aView;
}

标题:

#pragma once

#include  "ICalculatorView.h"
#include "SimpleCalculator.h"

class CalculatorController
{
private:
 SimpleCalculator& fModel;
 ICalculatorView& fView;
public:
 CalculatorController(SimpleCalculator& aModel, ICalculatorView& aView);

 void run();
 ~CalculatorController();
};

【问题讨论】:

标签: c++ oop object


【解决方案1】:

代替:

CalculatorController::CalculatorController(SimpleCalculator& aModel, ICalculatorView& aView)
{\\(this is the bracket informing me of the error)

fModel = aModel;
fView = aView;
}

使用

CalculatorController::CalculatorController(SimpleCalculator& aModel, ICalculatorView& aView) 
 : fModel(aModel),fView(aView)
{
}

fModel 和 fView 是引用成员。 CalculatorController 的不同实例可以通过这种方式共享同一个实例 fModel 和 fView,而无需使用讨厌的指针。

引用成员必须在创建时进行初始化。我的第二个代码块展示了如何。

【讨论】:

  • 那么我如何让 fModel 和 fView 引用任何东西?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 2019-10-24
  • 1970-01-01
  • 1970-01-01
  • 2015-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多