我在課上學習C++,並且正在嘗試使用虛擬創建/克隆函數來返回指向派生對象的指針。C++克隆和創建充當虛擬構造函數?
我發現這個實現,我要建立一個圍繞它http://www.cs.uregina.ca/Links/class-info/210/C++FAQ/virtual-functions.html#[20.5]
我不明白的是如何對返回的指針竟然指向任何相關數據克隆後()或創建()退出了塊?
有沒有更好的方法來解決這個問題,或者是我需要爲每個案例編寫一個函數?
感謝很多
class Shape {
public:
virtual ~Shape() { } // A virtual destructor
virtual void draw() = 0; // A pure virtual function
virtual void move() = 0;
// ...
virtual Shape* clone() const = 0; // Uses the copy constructor
virtual Shape* create() const = 0; // Uses the default constructor
};
class Circle : public Shape {
public:
Circle* clone() const { return new Circle(*this); }
Circle* create() const { return new Circle(); }
// ...
};
正在創建一個靜態對象一個可行的解決方法或否定所有工作都是OO?對不起,這還是很新的。 – Flexo1515