1_5 PrototypeMode 原型(克隆)模式
生活随笔
收集整理的這篇文章主要介紹了
1_5 PrototypeMode 原型(克隆)模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
// 定義:總原型實例指定創建對象的種類,并且通過拷貝這些
// 原型創建新的對象
//
// 模式舉例:孫悟空拔一根猴毛變出很多個自己
//
// 模式知識:有人把他翻譯為原型模式,也有人把他翻譯為克隆模式
//
//#include<iostream>
#include<string>
using namespace std;//疑問點:感覺這個模式添加一個拷貝構造函數和clone函數就可以了
// 不需要寫什么虛函數和繼承class Person
{
public:Person(){}Person(string name):m_name(name){}//這里需要寫拷貝構造函數嗎?//這個虛函數在父類這里需要實現嗎?virtual Person * clone()=0;virtual void showMe(){cout <<"person name is "<<m_name<<endl;}protected:string m_name;
};class Boy : public Person
{
public:Boy(string name):Person(name){}Boy(const Boy& b){this->m_name = b.m_name;}virtual Person * clone(){return new Boy(*this);}virtual void showMe(){cout <<"this is a boy;";Person::showMe();}
};int main()
{Boy * xiaoming = new Boy("xiaoming");Person * xiaoming2 = xiaoming->clone();xiaoming2->showMe();return 0;
}
?
總結
以上是生活随笔為你收集整理的1_5 PrototypeMode 原型(克隆)模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++设计模式之桥接模式
- 下一篇: 2_1 AdpterMode.cpp 适