"不为参考成员提供初始化程序......"

Byr*_*des 5 c++ oop object

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

#include "CalculatorController.h"


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

fModel = aModel;
fView = aView;
}
Run Code Online (Sandbox Code Playgroud)

标题:

#pragma once

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

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

 void run();
 ~CalculatorController();
};
Run Code Online (Sandbox Code Playgroud)

Mar*_*ott 13

代替:

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

fModel = aModel;
fView = aView;
}
Run Code Online (Sandbox Code Playgroud)

使用

CalculatorController::CalculatorController(SimpleCalculator& aModel, ICalculatorView& aView) 
 : fModel(aModel),fView(aView)
{
}
Run Code Online (Sandbox Code Playgroud)

fModel和fView是引用成员.CalculatorController的不同实例可以这种方式共享相同的实例fModel和fView,而不使用讨厌的指针.

必须在创建时初始化参考成员.我的第二个代码块显示了如何.