Effective C++简记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhao3132453/article/details/83552081

1、尽量用 const inline ,而不用 #define

2、尽量用 <iostream> 而不用 <stdio.h>

3、尽量用 new delete 而不用 malloc free

4、尽量使用 c++ 风格的注释

5、对应的 new delete 要采用相同的形式

6、析构函数里对指针成员调用 delete

7、预先准备好内存不够的情况

8、写 operator new operator delete 要遵循常规

9、避免隐藏标准形式的 new

10、如果写了 operator new就要同时写 operator delete

11、为需要动态分配内存的类声明一个拷贝构造函数和一个赋值操作符

12、尽量使用初始化而不要在构造函数里赋值

13、初始化列表中列出的成员顺序和他们在类中声明的顺序相同

14、确定基类有虚析构函数

15、让 operator= 返回 *this 的引用

16、在 operator= 中对所有数据成员赋值

17、在 operator= 中检查给自己赋值的情况

18、争取使类的接口完整并且最小

19、分清成员函数非成员函数友元函数

20、避免 public 接口出现数据成员

21、尽量使用 const

22、尽量用 “传引用” 而不用 “传值”

23、必须返回一个对象时不要试图返回一个引用

24、在函数重载和设定参数缺省值之间慎重选择

25、避免对数字类型和指针重载

26、当心潜在的二义性

27、如果不想使用隐式生成的函数就要显示的禁止他

28、划分全局名字空间

29、避免返回内部数据的句柄

30、避免这样的成员函数:其返回值是指向成员的非 const 指针或引用,但成员的访问级比这个函数要低

31、千万不要返回局部对象的引用,也不要返回函数内部用 new 初始化的指针的引用

32、尽可能的推迟变量的定义

33、明智的使用内联

34、将文件间的编译依赖性降到最低

35、使公有继承体现 “是一个” 的含义

36、区分接口继承和实现继承

37、决不要重新定义继承而来的非虚函数

38、决不要重新定义继承而来的缺省参数值

39、避免 “向下转换” 继承层次

40、通过分层来实现 “有一个”“用……来实现”

41、区分继承和模板

42、明智的使用私有继承

43、明智的使用多继承

44、说你想说的;理解你所说的

45、弄清楚C++在幕后为你所写、所调用的函数

46、宁可编译和链接时出错,也不要运行时出错

47、确保非局部静态对象在使用前被初始化

48、重视编译器警告

49、熟悉标准库

50、提高对C++的认识

猜你喜欢

转载自blog.csdn.net/zhao3132453/article/details/83552081