Mam klasy bazowej i dwie klasy pochodnej, i muszę skopiować wskaźnik do obiektu klasy pochodnej do jednej z innych klas, podobnie jak w przykładzie.C++ kopia dwóch pochodnych klasy
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)
}
staram się przejść od 1 pochodnego bazie Ti (upcasting dozwolone), a następnie do bazy * * dynamic_cast do Derived2 i wywołać konstruktor kopiujący, ale to nie będzie działać. Potrzebuję tylko skopiować między dwoma obiektami pochodnymi podstawową część obu obiektów.
Jeśli potrzebujesz uzyskać dostęp do pełnej informacji o Derived1 w Derived2 i na odwrót, mocno łączysz klasy. Być może łatwiej byłoby po prostu nie przechowywać wskaźników z każdej klasy w innej klasie, ale zaimplementować funkcje dostępowe w Derived1 i Derived2 oraz w innej klasie OperateOnDerived, która przechowuje odwołania do Derived1 i Derived2 i oblicza to, czego od nich potrzebujesz. – tmaric