原型模式(Prototype):用原型实例制定创建对象的种类,而且听过拷贝这些原型创建新的对象。

浅复制:假设字段是值类型的,则对该字段运行逐位复制。假设字段是引用类型。则复制引用但不复制引用的对象。因此,原始对象及其副本引用同一对象。

深复制:把引用变量的对象指向复制过的新对象。而不是原有的被引用的对象。

Effective C++:

1:在资源管理类中提供对原始资源的訪问。

(1)。APIs 往往要求訪问原始资源(raw resources),所以每个 RAII class 应该提供一个“取得其所管理之资源"的办法。

(2)。对原始资源的訪问可能精油显示转换或隐式转换。一般而言显示转换比較安全,但隐式转换对客户比較方便。

2:成对使用 new 和 delete 时要採用同样形式。

(1),假设你在 new 表达式中使用 [ ],必须在对应的 delete 表达式中也是用 [ ]。假设你在 new 表达式中不适用 [ ]。一定不要在对应的 delete 表达式中使用 [ ]。

3:以独立语句将 newed 对象置入智能指针

(1),以独立语句将 newed 对象存储于智能指针内。假设不这样做,一旦异常被抛出,有可能导致难以擦觉的资源泄露。

4:让接口easy被正确使用,不易被误用。

(1),好的接口非常easy被正确使用,不easy被误用。

你应该在你的全部接口中努力达到这些性质。

(2)。“促进正确使用”的办法包含接口的一致性,以及与内置类型的兼容。

(3),“阻止误用”的办法包含建立新类型、限制类型上的操作,束缚对象值。以及消除客户的资源管理责任。

(4),tr1:shared_ptr 支定制型删除器(custom deleter)。

这可防范 DLL 问题。可被用来自己主动解除相互排斥锁(mutexes)等等。

最新文章

  1. iOS 自定义方法 - 播放GIF
  2. jsonp解决跨域
  3. UDP模式聊天
  4. Struts2之OGNL
  5. ASP.NET MVC- Area 使用
  6. php smarty 缓存和配置文件的基本使用方法
  7. Jquery创建JSON对象
  8. 图的匹配问题与最大流问题(三)——最大流问题Ford-Fulkerson方法Java实现
  9. C++ 中 delete 和 delete[] 的区别
  10. sublime text 3 配置python IDE
  11. 循环神经(LSTM)网络学习总结
  12. 【原创】大叔经验分享(14)spark on yarn提交任务到集群后spark-submit进程一直等待
  13. Nginx实战-后端应用健康检查
  14. 演示Thread.sleep(100)和Thread.currentThread().isInterrupted()+@Deprecated:将方法标注为废弃的方法
  15. Revit中如何给不同构件着色
  16. android仿支付宝输入车牌号
  17. Ajax与跨域Ajax
  18. CS229 6.13 Neurons Networks Implements of stack autoencoder
  19. 64位FreeSWITCH编译安装(版本1.4.20)
  20. html超链接,锚点以及特殊字符

热门文章

  1. Genesis 多边形闭轮廓填充算法
  2. sublime text 快键键
  3. 猜拳游戏项目(涉及知识点Scanner、Random、For、数组、Break、Continue等)
  4. jQuery学习笔记之DOM操作、事件绑定(2)
  5. JavaScript中字符串运算符的使用
  6. Unity引擎GUI之Slider和Scrollbar
  7. texi格式文件的读取
  8. 【技术累积】【点】【sql】【17】了解索引
  9. asp.net mvc学习入门
  10. Docker 数据卷重复挂载测试