我有一个ModelRecorder包含modelRef_对另一个类 OpModel的引用的类。
class ModelRecorder : public CompositionalModel //This is an abstract base class
{
OpModel& modelRef_;
};
Run Code Online (Sandbox Code Playgroud)
ModelRecorder创建并modelRef_初始化的实例时。那很好,我不明白。
我将如何编写复制构造函数,ModelRecorder以便在创建另一个实例时,引用成员modelRef_将使用先前创建的 OpModel 对象初始化?
请注意,这CompositionalModel是一个抽象基类。
在另一个类中有返回对CompositionalModel基类的引用的功能。我知道返回更窄的基类是一个很好的 OOP。
例如 CompositionalModel& recordedModel();
我想将此对基类的引用传递给复制构造函数。
我试过这个,但它给出了错误,这modelRef是在派生类中是正确的ModelRecorder。
错误:“const class mv::CompositionalModel”没有名为“modelRef_”的成员
mv::ModelRecorder::ModelRecorder(const CompositionalModel& arg) : CompositionalModel{static_cast<const ModelRecorder&>(arg)}, modelRef_{arg.modelRef_}
{
}
Run Code Online (Sandbox Code Playgroud)