原型模式和C++的拷贝构造函数有什么区别
生活随笔
收集整理的這篇文章主要介紹了
原型模式和C++的拷贝构造函数有什么区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
都是基于個人理解,本文是為了幫助記憶。
相同點:原型模式和拷貝構造函數都是要產生對象的復制品。
不同點:原型模式實現的是一個clone接口,注意是接口,也就是基于多態的clone虛函數。也就是說原型模式能夠通過基類指針來復制派生類對象??截悩嬙旌瘮低瓴怀蛇@樣的任務。
? ? ? ? ? ? ? ?原型模式的核心是克隆,構造函數只是克隆的一個辦法而已。
class?base
{
??public?:?
??base();
??base(base?&obj);
??virtual??~base();
??virtual?base?*clone()?{?return?new?base(*this)?;?};
};
class?derived?:?public?base
{
??public?:?
??derived();
??derived(??derived?&);
?virtual?base?*clone(){return?new?derived?(*this);?}
....
};
base?*obj1?=?new?base?;?
base?*obj2?=?new?derived?;
base?*obj3?=?obj1?.clone();
base?*obj4?=?obj12.clone();
轉載于:https://www.cnblogs.com/jylz/p/10648439.html
總結
以上是生活随笔為你收集整理的原型模式和C++的拷贝构造函数有什么区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot系列十五、sprin
- 下一篇: 53-C++ CH08 01