用基类对象C ++初始化子类?

罗纳蒂科

因此,标题可能有点令人困惑,但这是我的问题:

我有一个超类(我们称它为SupClass)和一个继承自SupClass的子类(我们称其为InhClass)。现在,我想为我的InhClass构造一个接收SupClass对象的构造函数,并用它初始化InhClass的“ SupClass部分”。

这是一个试图说明清楚的代码示例:

Class SupClass { 
public:   
       SupClass() {
           //Initialize SupClass object
       }
};

Class InhClass : private SupClass {
public:
       InhClass(SupClass obj) {
            //Initialize SupClass inheritance with obj
       }
};

这将用于您已经初始化了SupClass对象(并且可能对其进行了处理)但又持续了很短时间的情况,或者从那时起您要使用InhClass对象。无需复制所有内容(例如,关闭并重新打开文件),我将能够使用其基类对象初始化子类。

提前致谢,

对任何英语错误我感到抱歉,

迈克·西摩

您必须将其复制或移动才能成为新对象的一部分。无法将现有对象转换为新类型。

以通常的方式在初始化程序列表中对其进行初始化。

// Copy an existing object
InhClass(SupClass const & obj) : SupClass(obj) {}

// Move an existing object
InhClass(SupClass && obj) : SupClass(std::move(obj)) {}

为了避免复制/移动,您必须使用继承以外的其他东西。您可以有一个“包装器”类,其中包含对的指针/引用SupClass以及您想使用其扩展的任何内容。

struct Wrapper {
    SupClass & obj;

    // Refer to existing object without creating a new one
    Wrapper(SupClass & obj) : obj(obj) {}
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用父类初始化子类

来自分类Dev

从超类初始化子类的类实例变量

来自分类Dev

从超类初始化子类的类实例变量

来自分类Dev

初始化子类时可访问超类的变量

来自分类Dev

如何从抽象母类上的指针初始化子类?

来自分类Dev

初始化子类时基类如何初始化

来自分类Dev

调用基类构造函数与初始化子类中的成员变量

来自分类Dev

Python类继承:如何使用不在父类中的值初始化子类

来自分类Dev

使用python中父类的魔术方法__init__初始化子类

来自分类Dev

用子类型初始化父类中的对象

来自分类Dev

初始化子类字段

来自分类Dev

对象工厂设计以初始化父类或子类对象

来自分类Dev

在@PostConstruct之后初始化子类

来自分类Dev

在@PostConstruct之后初始化子类

来自分类Dev

初始化子类不起作用

来自分类Dev

在指向父对象的指针上初始化子对象

来自分类Dev

在子类中初始化超类对象

来自分类Dev

如何在 angular/typescript 中初始化子 json 对象?

来自分类Dev

子类和超类中的重复初始化

来自分类Dev

使超类的初始化程序返回特定的子类?

来自分类Dev

在子类中初始化超类数组(java)

来自分类Dev

在父类中使用的子类中初始化属性

来自分类Dev

在python中创建无法初始化但其子类可初始化的类的最佳方法

来自分类Dev

在超类初始化之前,子类最终进行静态初始化?

来自分类Dev

在超类初始化之前,子类最终进行静态初始化?

来自分类Dev

如何使用super()在python中初始化子类参数

来自分类Dev

使用Parent构造函数初始化子类

来自分类Dev

使用Parent构造函数初始化子类

来自分类Dev

在子类中初始化Objective-C属性

Related 相关文章

热门标签

归档