C++特有的const定义常量
·
const 的基本用法
在 C++ 中,const 用于定义常量,表示变量的值不可修改。语法如下:
const int MAX_VALUE = 100;
MAX_VALUE被定义为常量,后续修改会导致编译错误。- 必须初始化,否则编译报错。
const 与指针
const 可以修饰指针本身或指针指向的数据,形成三种组合:
- 指向常量的指针(底层 const):
const int* ptr = &value; // 不能通过 ptr 修改 value - 常量指针(顶层 const):
int* const ptr = &value; // ptr 的指向不可变,但可修改 *ptr - 指向常量的常量指针:
const int* const ptr = &value; // 指针和指向的值均不可变
const 与成员函数
在类中,const 可修饰成员函数,表示该函数不会修改对象状态:
class MyClass {
public:
int getValue() const { return value_; } // 不会修改成员变量
private:
int value_;
};
const成员函数只能调用其他const成员函数或访问mutable成员。
constexpr(C++11 引入)
constexpr 表示编译期常量,比 const 更严格:
constexpr int ARRAY_SIZE = 10; // 必须在编译时确定值
int arr[ARRAY_SIZE]; // 合法
- 适用于函数和对象,要求表达式可在编译期求值。
与宏定义的对比
const有类型检查和作用域,宏(#define)仅是文本替换。- 推荐优先使用
const或constexpr替代宏。
注意事项
- 默认情况下,
const对象仅在当前文件可见。若需跨文件使用,需加extern:extern const int GLOBAL_CONST; const引用可绑定到临时对象,延长其生命周期。
更多推荐



所有评论(0)