effective c++ 读书笔记
2014-04-14 16:37
302 查看
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 多个对象,共享同一个对象,并 共享同一个计数器。
主要针对的就是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 多个对象,共享同一个对象,并 共享同一个计数器。
相关文章推荐
- 一道C语言编程比赛题(时钟追赶问题)
- C语言 时间函数
- 将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)
- PAT 1073. Scientific Notation (科学计数法 字符串模拟)
- VC++中加入语音wav最简单的方法
- 【Visual C++】Windows GDI贴图闪烁解决方法
- C++primer plus第六版课后编程题答案10.3
- C++primer plus第六版课后编程题答案10.3
- [一站式服务] Windows下C++文件编译.so 文件
- C6000的C语言优化
- C++的存储持续性(自动、静态、动态),作用域,链接性
- dsp C语言优化-(三)
- C++ - 虚函数(virtual function)缺省参数的异常表现 及 正确使用方法
- C++ 全排列函数 std::next_permutation与std::prev_permutation
- DSP C语言优化-(二)
- C++类型不安全
- DirectX 11 Compute Shader tutorial
- 【C/C++多线程编程之二】pthread简介
- i = i++;
- C++: 为什么我们一般都要将函数的声明和定义分开?(separate the declaration of function from its definition)