Я изучаю C++ в классе и работаю над попыткой вернуть указатель на производный объект с помощью виртуальной функции create/clone.C++ clone и создать виртуальный конструктор?
Я нашел эту реализацию, и я о том, чтобы построить вокруг него 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