наследование — C ++ копия двух производных классов

У меня есть базовый класс и два производных класса, и мне нужно скопировать указатель на объект производного класса на другой класс, как в примере.

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 и вызвать конструктор копирования, но это не сработает.
Мне нужно только скопировать между двумя производными объектами базовую часть обоих объектов.

8

Решение

Если вы хотите просто скопировать часть базового класса, создайте конструктор, который получает базовый класс.

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

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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector