代码改变世界

effective c++ 读书笔记

2014-04-14 16:37  crazyxiazi  阅读(145)  评论(0)    收藏  举报
item 12:复制对象时不要忘记复制每一部分。
主要针对的就是copy assignment = 操作符。
在默认的情况下,对每一个对象,不管是基类还是父类,都会构建一个复制其每一个成员的默认 赋值操作函数。这其中就有浅拷贝的问题。
 
所以我们会自己写一个赋值操作函数。
 
但是,我们写了基类的赋值操作函数 之后,子类的默认赋值操作,也会同样使用父类的赋值操作。这回丢掉子类的一些成员
 
所以我们需要写 子类 的赋值操作函数 -- 注意,我们写了子类的赋值 操作函数时,也要在其中注明 对父类的 赋值操作。
 
item 13 -17 智能指针
 
auto_ptr :一个 指针 智能被一个对象拥有 若有 a = b 或 a(b) 的操作  则a 获得指针,而b = NULL。
          问题,都是delte 而不是delete []
 
item 14:资源管理类的 copy 问题, 资源的拥有权如何交接。
          1.计数,2,复制3,转移,4禁止复制。从一个禁止复制的父类继承(将 operator = 设为private)
 
shared_ptr 多个对象,共享同一个对象,并 共享同一个计数器。