const关键字的作用与用法详解
请说明C++中const关键字的多种使用场景,包括const修饰变量、指针、引用、成员函数、返回值等,以及const与宏定义#define的区别。
回答
编译有声
const表示[只读],常见用法:
1.const修饰变量:定义常量,const int N = 100;,编译时常量可用于数组大小(C++支持)。
2.const与指针:const int* p(指向常量的指针,值不可改)、int* const p(常量指针,地址不可改)、const int* const p(都不可改)。
3.const修饰引用:const T& ref,常用于函数参数避免拷贝且不修改原对象。
4.const成员函数:void func() const;承诺不修改成员变量(mutable成员除外),const对象只能调用const成员函数。
5.const返回值:const T func()防止返回值被修改。
6.与#define区别:define是预处理器文本替换,无类型检查;const有类型和作用域,支持调试信息。
7.constexpr:C++11引入,编译期常量表达式,比const更强(保证编译期求值)。