一、const关键字
const关键字保护修饰的对象不被修改,作为常量来使用,只读
const可以修饰变量、引用、指针、对象、成员等
- 常变量:const 类型说明符 变量名
- 常引用:const 类型说明符 & 引用名
- 常指针:
类型说明符 * const 指针名
指向常量的指针 :const 类型说明符 * 指针名
指向常量的常指针:const 类型说明符 * const 指针名
- 常对象:类名 const 对象名
- 常成员:
常数据成员 :const 类型说明符 成员名
常成员函数:类型名 函数名(形参) const
区别:
(1)define宏定义是在预处理阶段进行替换;const常量是在编译运行阶段使用
(2)define宏定义没有类型,不做任何类型检查;const常量有具体的类型,在编译阶段会进行类型检查
(3)宏定义不分配内存;const常量会分配内存
C++推荐使用const关键字
问题:既然c++有更好用的const,为什么还要用宏定义呢?
利用宏定义可以进行条件编译
为了保护头文件,避免交叉重复包含,常用宏。例如
-
#ifndef HEADERFILE1_H
-
#define HEADERFILE1_H
-
//头文件内容
-
#endif