Mam następującą relację klas. Chcę sklonować klasę pochodną, ale pojawia się błąd "nie można utworzyć instancji klasy abstrakcyjnej". Jak mogę sklonować klasę pochodną? Dzięki.Klonowanie klasy C++ metodami czysto wirtualnymi
class Base {
public:
virtual ~Base() {}
virtual Base* clone() const = 0;
};
class Derived: public Base {
public:
virtual void func() = 0;
virtual Derived* clone() const {
return new Derived(*this);
}
};
Co by to zrobiło? Klon jest zasadniczo operacją na poziomie obiektu. Bez konkretnego obiektu, skąd wiesz, co sklonować? – Joe