两个派生类的 C++ 拷贝

标签 c++ inheritance copy-constructor derived-class

我有一个基类和两个派生类,我需要将一个指向派生类对象的指针复制到另一个类中,就像示例一样。

class Base
{
public:
    Base(const Base& other);
}

class Derived1 :public Base
{
public:
    Derived1(const Derived& other): Base(other){...};
}

class Derived2: public Base
{
public:
    Derived2(const Derived& other): Base(other){...};
}

main()
{
    Derived 1 d1;
    Derived2 d2(d1)
}

我尝试从 Derived 1 ti base 传递(允许向上转换),然后将 *dynamic_cast* Base 传递给 Derived2 并调用复制构造函数,但它不起作用。 我只需要在两个派生对象之间复制两个对象的 Base 部分。

最佳答案

如果您的意图只是复制基类部分,请创建一个接收基类的构造函数。

Derived2(const Base& other): Base(other){...};

Derived1(const Base& other): Base(other){...};

关于两个派生类的 C++ 拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13949728/

相关文章:

java - 使用继承的方法调用

node.js - 将 sequelize 模型实例传递给服务在 express.js 中不起作用

c++ - 局部变量和作为参数传递的变量

java - 具有来自继承的抽象类的值的构造函数,该抽象类实现了一个接口(interface)

c++ - 为什么在C++中调用d1=d2+d3语句的拷贝构造函数?

c++ - 在 C++ 中定义构造函数的更好方法是什么?初始化列表或 Ctor 主体中的初始化?

c++ - MFC中如何设置控件在对话框中的初始位置?

c++ - std::functions 错误 vector

c++ - 用于实时数据采集的快速内存分配

c++ - GMock 的 Clang++ undefined reference 错误