我有一个基类和两个派生类,我需要将一个指向派生类对象的指针复制到另一个类中,就像示例一样。
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/