Note of Justin

关于工作和读书的笔记

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  47 Posts :: 0 Stories :: 45 Comments :: 0 Trackbacks

留言簿(14)

搜索

  •  

积分与排名

  • 积分 - 50691
  • 排名 - 434

最新评论

阅读排行榜

评论排行榜

[原创文章欢迎转载,但请保留作者信息]

Justin 于 2009-10-30

Item5和Item6说的东东很接近,难道是Scott讨厌54这个数才把一个Item分成两个凑成55的?

如果没有定义类的构造函数/拷贝函数/拷贝构造函数/析构函数,编译器会自作主张帮你定义这些函数,而且还是public外加inline的。(估计这是最冷的冷饭了)
当然编译器的智商也是有限的,在帮你写拷贝函数时仅限于帮你处理一下诸如int的内嵌类型(build-in type)以及自身就有拷贝函数的类对象,再复杂一点的就搞不定了。

上面就是Item5的内容,Item6站在巨人的肩膀上,找到了如何礼貌谢绝编译器傻乎乎地帮你做这些事情:
   有时候需要禁止某个类对象的拷贝操作,就要避免以上函数的自动生成,需要自己定义这些函数,并且有以下特性

  1. private
  2. 只是声明,不给予实现(give no implementation)

当然要是还是觉得麻烦,干脆直接继承Boost的noncopyable(自己写一个类似的也可以),就可以不费吹灰之力的获得不能拷贝的特性。

什么?写完了?貌似没吃饱啊……

posted on 2009-12-16 10:10 Justin.H 阅读(218) 评论(0)  编辑 收藏 引用 所属分类: Effective C++ 炒冷饭

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理