小编pel*_*ady的帖子

C ++为具有引用成员变量的类创建复制构造函数

我有一个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)

c++ reference copy-constructor

6
推荐指数
1
解决办法
3863
查看次数

标签 统计

c++ ×1

copy-constructor ×1

reference ×1