사용 시나리오 : 당신은 기존 개체를 기반으로 객체를 생성, 클래스를 기반으로 개체를 만들 수없는 경우
당신은 상황의 클래스를 기반으로 개체를 만들 수 없습니다 :
- 당신은 매우 복잡한 과정을 만들 수있는 다양한 객체를 생성 할 필요에 따라, 클래스 객체를 생성 할 때
- 이 클래스의 객체를 생성하기가 어렵다
예를 들면 :
일류 상품 { 공개 : 가상 제품 *의 createClone () = 0; 가상 공간 사용 () = 0; };
클래스 애플 : 공공 제품 { INT X; 공공 : 제품 *의 createClone () { 새로운 애플 (*이)을 반환; } 애플 INT (X = 0) { this-> X = X; } 애플 (CONST 애플 & 기타) { X = other.x; } 공극 사용 () { COUT << "X ="<< X << ENDL; } };
INT 주 () { 제품 *의 P1 = 새로운 애플 (10); 제품 * P2 = P1-> createClone (); P1-> 사용 (); P2-> 사용 (); 0을 반환; }