经过一些谷歌搜索,我无法找到这个问题的答案。我如何初始化它,为什么需要?
#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();
};
答案 0 :(得分:9)
而不是:
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,而不使用讨厌的指针。
必须在创建时初始化参考成员。我的第二个代码块显示了如何。