C++两个派生类的副本

C++ copy of two derived class

本文关键字:派生 副本 两个 C++      更新时间:2023-10-16

我有一个基类和两个派生类,我需要将指向派生类对象的指针复制到另一个类之一,如示例所示。

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)
}

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

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

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