摘要:
1. operatoroperator op= 直接作用于lvalue 并传回reference, 而 operator op 必须传回一个临时对象。如果你提供某个op 的标准版本 operator op, 同时请为他提供一份 assignment 版本 operator op=, 并且用后者为基础来实现前者, 同时也请保存 op 和 op= 之间的自然关系。使用以下准则来决定一个运算符是否为me... 阅读全文
摘要:
1. 内存区域常量数据区const data, 编译期间就能确定的值, 在程序的整个生存期内, 区域中的数据都是可用并且只读。栈区stack 自动变量, 局部变量自由存储区free store和堆heap全局/静态区global/static,全局的或静态的变量和对象所占用的存储区域在程序启动的时候才被分配,而且直到程序开始执行的时候才被初始化。2. new如果你为某个类提供了任何类相关的new,... 阅读全文
摘要:
1. virtual destructor让base class 的 destructor 为 virtual, 除非你确定不会有人企图通过一个pointer to base 去删除一个derived object。基类的析构函数要么是虚拟共有函数,要么是非虚拟的保护函数2. 绝不要改写虚函数的预设参数3. 尽量避免使用public 虚函数, 尽量以template method 取代之4. co... 阅读全文
摘要:
1. Standard Exception Classes 1)Exceptions for language supportbad_allocbad_castbad_typeidbad_exception 2)Exceptions for the C++ standard library(logic_error)invalid_argumentlength_errorout_of_rangedo... 阅读全文
摘要:
1. auto_ptrs1)auto_ptrs cannot share ownership2)auto_ptrs are not provided for arrays(auto_ptr 使用operator delete 语义,尽量使用vector 代替数组)3)auto_ptrs don't meet the requirements for container elements const... 阅读全文
摘要:
Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)More Effective C++: 35 New Ways to Improve Your Programs and DesignsEffective STL: 50 Specific Ways to Improve Your Us... 阅读全文