首页 > 后端开发 > C++ > 正文

c++怎么使用const关键字_c++ const关键字使用总结

下次还敢
发布: 2025-10-17 11:41:01
原创
259人浏览过
const用于定义不可变变量、指针、函数参数及成员函数,提升代码安全与可读性;1. const变量需初始化且不可修改,替代宏更安全;2. const指针分三种:指向常量、常量指针、指向常量的常量指,取决于const位置;3. const参数防止函数内误改实参,尤其用于引用或指针;4. const成员函数承诺不修改成员变量,可被const对象调用;5. const对象只能调用const成员函数,确保只读性;6. const返回值防止非法赋值,对自定义类型有意义;7. constexpr比const更严格,要求编译期确定值。合理使用const能明确接口语义,减少错误。

c++怎么使用const关键字_c++ const关键字使用总结

在C++中,const关键字用于定义不可变的变量、函数参数、成员函数和指针,帮助提高代码的安全性和可读性。正确使用const可以防止意外修改数据,并让编译器进行更多优化。

1. const修饰基本数据类型变量

用const声明的变量值不能被修改,必须在定义时初始化。

const int size = 10;
size = 20; // 编译错误:不能修改const变量

这种用法常用于替代宏定义,更安全且具有类型检查。

2. const与指针

const和指针结合有多种情况,关键是看const修饰的是指针本身还是指向的内容。

立即学习C++免费学习笔记(深入)”;

  • const int* p; — 指向常量的指针,内容不能改,指针可以改
  • int* const p; — 常量指针,内容可以改,指针不能改
  • const int* const p; — 指向常量的常量指针,都不能改

记忆技巧:看const紧邻哪边。如果在类型前,表示内容不可变;在*后,表示指针本身不可变。

3. const用于函数参数

当函数参数为引用或指针时,加上const可防止函数内部修改实参。

void print(const std::string& str) {
  // str不能被修改
}

这对大对象尤其重要,避免拷贝的同时保证安全性。

4. const成员函数

成员函数后加const表示该函数不会修改类的成员变量。

BibiGPT-哔哔终结者
BibiGPT-哔哔终结者

B站视频总结器-一键总结 音视频内容

BibiGPT-哔哔终结者 28
查看详情 BibiGPT-哔哔终结者
class MyClass {
  int getValue() const { return value; } // 不会修改成员
  void setValue(int v) { value = v; }
private:
  int value;
};

只有const成员函数才能被const对象调用。

5. const对象与const成员访问

const对象只能调用const成员函数,不能调用非常量成员函数。

const MyClass obj;
obj.getValue(); // OK
obj.setValue(5); // 错误:不能调用非const函数

这是const正确性的体现,确保只读对象不被修改。

6. const返回值

某些情况下返回const值可以防止赋值操作,比如:

const int getValue() const;

这样写可以防止如 getValue() = 10; 这类非法赋值(虽然对内置类型意义不大,但对自定义类型有用)。

7. constexpr与const区别(补充)

constexpr要求在编译期就能确定值,比const更严格。

constexpr int square(int x) { return x * x; }
constexpr int s = square(5); // 编译期计算

const变量可以在运行时初始化,而constexpr必须在编译时确定。

基本上就这些。const的使用核心是“承诺不修改”,合理使用能让接口语义更清晰,减少bug。掌握好const,是写出高质量C++代码的重要一步。

以上就是c++++怎么使用const关键字_c++ const关键字使用总结的详细内容,更多请关注php中文网其它相关文章!

c++速学教程(入门到精通)
c++速学教程(入门到精通)

c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号