プロトタイプの設計パターンでは、抽象基底クラスの clone メソッドは以下のように実装されています。
/* From Wikipedia */
class Prototype
{
public:
virtual ~Prototype() { }
virtual Prototype* clone() const = 0;
};
class ConcretePrototype : public Prototype
{
...
virtual ConcretePrototype* clone() const
{
return new ConcretePrototype(*this);
}
};
クライアントはオブジェクトを作成し、次に clone() メソッドを呼び出してオブジェクトのコピーを作成します
new ConcretePrototype(*this) は new ConcretePrototype( ) より安いですか?