Tôi có mối quan hệ sau đây của các lớp. Tôi muốn sao chép lớp Derived, nhưng tôi nhận được lỗi "không thể khởi tạo lớp trừu tượng". Làm thế nào tôi có thể sao chép các lớp học có nguồn gốc? Cảm ơn.Nhân bản lớp C++ với các phương pháp ảo thuần túy
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);
}
};
Điều này sẽ làm gì? Một bản sao bản chất là một hoạt động cấp đối tượng. Nếu không có một vật thể cụ thể, làm thế nào để bạn biết những gì để nhân bản? – Joe