C++ 是一个难学易用的语言!难学一方面在于其广博,因此我选择用笔记的形式精简出一些有用的条款。
运算符重载
自增、自减
以自增为例:
- 前缀自增无参数,后缀自增带一个默认为 0 的
int型参数 - 前缀自增返回类型为引用,可以保证连续操作,如
++++i,而后缀自增返回类型加const,避免i++++这样的非法操作 - 前缀自增效率较高
&&,|| 和 ,
不要去重载 &&,|| 和 ,,因为无法让他们的行为跟你所期待的一致,比如短路求值法。
各种 new 和 delete
关于 new:
new用于在堆内存中建立一个对象,即分配堆内存并为对象调用构造函数operator new仅用于分配堆内存,new中的内存分配部分也调用此函数placement new用于在已经获得指针的内存里建立一个对象
关于 delete:
delete用于析构对象并释放operator new分配的内存operator delete仅用于释放operator new出来的内存- 用
placement new建立的对象一般需要显式调用析构函数
当遇到数组情况时,在操作符后加 [],如 delete[]。