使用シナリオ:あなたは、クラスに基づいてオブジェクトを作成することはできません、既存のオブジェクトに基づいてオブジェクトを作成します
あなたは状況のクラスに基づいてオブジェクトを作成することはできません。
- あなたは、クラスのオブジェクトを作成すると、非常に複雑なプロセスを作成するために、さまざまなオブジェクトを作成するために必要に応じて
- クラスからオブジェクトを生成することは困難です
例:
クラス商品 { パブリック: 仮想商品* createClone()= 0; 仮想のボイド使用()= 0; }。
クラスアップル:公共の製品 { int型のX; 公共: 製品* createClone() { (* this)を新しいAppleを返します。 } アップル(INT X = 0) { this-> X = X。 } アップル(CONSTアップル&その他) { X = other.x。 } ボイド使用() { COUT << "X =" << X << ENDL。 } }。
int型のmain() { 製品* p1の=新しいApple(10)。 製品* P2 = P1-> createClone(); P1->()を使用します。 P2->()を使用します。 0を返します。 }