《Effecitve C++》简略笔记——1~17
来源:互联网 发布:php工厂模式代码 编辑:程序博客网 时间:2024/05/20 17:24
Item 1
c++其实是个大杂烩。
Item 2
使用const,enums,inlines等,容易定位错误。宏有很多坏处,比如著名的max函数宏定义问题。
Item 3
多使用const,保证正确性等等。比如返回类型、const的函数等。还有const非const的转换问题。
Item 4
进行初始化。使用初始化列表,注意初始化和赋值,是不同的东西。还有传说的local static object,以及使用函数调用的方式来保证static的对象,可以在调用前进行初始化。
Item 5
会自动生成这四个函数,如果用户没有自行定义:构造,析构,拷贝构造,=。但是存在问题时,编译器不会自动构建=。
Item 6
显示不允许自动生成上述的函数,可以通过只declare不define。并且,设置为private,不让人们调用。更加好的方法,是使用Uncopyable基类的方式。
Item 7
在基类中,需要将析构函数定义为virtual的形式,这样子,当进行delete一个基类的指针时,可以通过虚表来执行实际的派生类析构函数。虚表,虚表指针等内容。还有虚函数增加内存的内容。
Item 8
在析构时,需要防止促发exception。主旨是,要能重现这个exception,方便进一步处理。
Item 9
在构造、析构函数中,不要调用虚函数,因为调用的版本可能会不对。构造、析构的过程。
Item 10
operators应该返回*this。与build-in类型一致。
Item 11
assignment to self。self-assignment safe,还有exception safe的方式。以及使用拷贝构造函数,swap函数等。
Item 12
要拷贝object的所有部分。在拷贝构造函数,=赋值号中,注意。
Item 13
使用对象去管理资源。RAII,Resource Acquisition Is Initialization,资源获取就是初始化。还有RCSP,Reference-Counting Smart Pointer。
Item 14
进行资源管理的类的拷贝时。
Item 15
提供raw source的访问方法。有两种,explicit(get函数),implicit(operator形式)。注意会有的问题。
Item 16
new delete时,数组问题,记得 [ ]
Item 17
使用智能指针时候,使用standalone statements,否则会有泄露的危险,因为C++对函数参数的实现顺序没有强制要求。
========TO BE CONTINUED======
- 《Effecitve C++》简略笔记——1~17
- <<Effecitve C++>>笔记2
- c++primer 1-3章简略笔记
- 《More Effecitve C++》 关于static_cast
- Effecitve 阅读笔记--private继承与组合
- 接口安全策略——简略
- spring简略笔记
- 高级编程简略笔记
- CSCOPE用法简略笔记
- SIM5000简略笔记
- 简略的笔记 Numpy
- Python笔记,简略版
- mySql 视频简略笔记
- Python3 简略笔记
- vs2010快捷键————简略
- struts2工作流程图——简略
- 《程序员修炼之道》简略笔记:1-4章
- more effective c++——Item M29 引用计数(一)简略的rfstring类设计和写时拷贝
- JavaScript的三种代码书写格式
- MyEclipse保存页面时编译总是很慢
- android控件学习一:EditText控件详解
- ESQL比较日期和时间
- 用于将.cs文件 编译成dll文件
- 《Effecitve C++》简略笔记——1~17
- 多选就是在事件触发时判断下某个键是否被按下
- ubuntu 下 nginx 的安装以及配置
- 移动台被呼流程
- 页面转向及显示问题
- C#常用的集合
- 求阶层
- DWR入门实例五之文件下载
- TransactionScope使用说明