Effective c++
1、explicit 防止隐式转换,构造函数除非有充足的理由使用隐式,否则使用explicit;
2、为阻止编译器自动生成的copy,赋值,构造函数,可以将其申明为pivate函数;
3、析构函数千万不要抛出异常;
4、资源取得时机便是初始化的最佳时机(Resource aquisition is initialization,RAII):资源在构造期间取得,在析构期间释放。RAII Copying:禁止copying,采用引用计数。
5、non-member的cleaerEverything 比member的clearEverything更好,因为member的clearEverything给了客户更大的自由度,破坏了封装。让non-member的cleaerEverything和该类位于同一个命名空间内。
6、Friend function 可以访问私有变量。
7、将所有便利函数放在多个头文件内但隶属于同一空间,意味着客户可以轻松扩展这一组便利函数。
8、如果你需要为某个函数的所有参数进行类型转换,那这个函数必须是非成员函数。
9、构造函数不能inline,其子类成员变量的构造都会别inline化; f被内联,所有用到f的地方都要重新编译;
浙公网安备 33010602011771号