У меня есть базовый класс и два производных класса, и мне нужно скопировать указатель на объект производного класса на другой класс, как в примере.
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 и вызвать конструктор копирования, но это не сработает.
Мне нужно только скопировать между двумя производными объектами базовую часть обоих объектов.
Если вы хотите просто скопировать часть базового класса, создайте конструктор, который получает базовый класс.
Derived2(const Base& other): Base(other){...};
Derived1(const Base& other): Base(other){...};
Других решений пока нет …