1、尽量以const,enum,inline 替换 #define
2、定义式和声明式:
变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。
变量声明:用于向程序表明变量的类型和名字。
定义也是声明:当定义变量时我们声明了它的类型和名字。
注意:
1. 不要把变量定义放入.h文件,这样容易导致重复定义错误。
2. 尽量使用static关键字把变量定义限制于该源文件作用域,除非变量被设计成全局的。
3. 可以在头文件中声明一个变量,在用的时候包含这个头文件就声明了这个变量。
3、extern
extern inti; //声明,不是定义
inti; //声明,也是定义
特别的class A{
private:
static const int Num = 5 //常量声明式
};
4、取enum和#define的地址通常是不合法的
5、对于形似函数的宏(macros),最好改用inline函数替换#define
6、尽可能使用const
const出现在 * 号左边,表示被指物是常量,在右边表示指针是一个常量
迭代器中的使用
函数的返回类型是个内置类型,那么改动函数的返回值从来就不合法
在函数前面加const表示返回值为const类型,在函数后面加const则表示this指针为const,不能改变类的成员变量的值
mutable修饰的变量在const修饰的函数里也可以改变
将某些东西声明为const可帮助编译器侦测出错误用法。const可被施加于任何作用域内的对象、函数参数、函数返回类型、成员函数本体。
编译器强制实施bitwise constness,但你编写程序应该使用”概念上的常量性“
当const和non-const成员函数有着实质等价的实现时,令non-const版本调用const版本可避免代码重复。