- 博客(5)
- 资源 (1)
- 收藏
- 关注
原创 条款04:确定对象被使用前已经被初始化
2、构造函数最好使用成员初始化列表,而不要在构造函数内使用赋值操作。初始化列表列出的顺序应该和他们在class中声明的顺序相同。3、为免除"跨编译单元初始化次序"问题,请以local static对象替换non-local static 对象。1、对内置类型进行手工初始化,因为C++不能保证初始化他们。
2023-11-13 17:43:25 37
原创 条款03:尽可能使用const
1、将某些东西声明为const可以帮助编译器侦测出错误用法。const可被施加于任何作用域内的对象、函数参数,函数返回类型、成员函数本体。3、当const和non-const成员函数有着实质等价的实现时,令non-const版本调用const版本可避免代码重复。2、编译器强制执行bitwise constness ,但你编写程序时应该使用"概念上的常量性"。
2023-11-09 17:19:43 27 1
原创 尽量以const,enum,inline替换#define
这样做潜在的问题是,可能记号名称ASPECT_RATION 在编译器编译源码之前,已经被预处理器移走了,运行时可能获得一个编译错误信息,这个错误信息可能会提示1.653而不是ASPECT_RATION,导致你对1.653来自何处毫无概念。(如果编译器报错找不到定义,需要在cpp文件中提供如下定义)作为一个常量,AspectRatio肯定会被编译器看到。声明时已经设置初值了,这里不需要再设置初值。这个template产出一整群函数。另一个值得关注的点是类内的常量。对于这样的宏看起来就让人很头疼。
2023-11-08 15:02:43 36 2
原创 视C++为一个语言联邦
将C++视为一个由相关语言组成的联邦而非单一语言。在其某个次语言中,各种守则与通例都倾向简单、直观易懂,并且容易记住。当从一个次语言移往另一个次语言时,守则可能改变。
2023-11-07 14:12:57 126
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人