当前位置: 首页 > news >正文

C++ const 限定符的全面介绍

C++ const 限定符的全面介绍

1. const 修饰基本数据类型

定义

const 修饰的基本数据类型变量,值不可改变。

语法

const type variable = value;

特点

不可变性,增加代码可读性。

作用

定义不可修改的常量。

使用场景

全局常量、配置项。

注意事项

必须在声明时初始化。

代码示例

#include <iostream>
using namespace std;int main() {const int maxCount = 10;cout << "Max count: " << maxCount << endl;// maxCount = 20; // 错误:不能修改 const 变量return 0;
}

运行结果

Max count: 10

总结

适用于定义程序中的固定值,提高安全性和可维护性。


2. const 修饰指针变量和引用变量

定义

使指针指向的数据或指针本身成为常量。

语法

const type* ptr; // 指针指向的数据是常量
type* const ptr; // 指针本身是常量
const type& ref; // 引用的是常量

特点

防止通过指针或引用修改数据。

作用

保护指向的数据或保护指针本身不被更改。

使用场景

函数参数,防止指针/引用意外修改数据。

注意事项

区分指针指向常量和常量指针。

代码示例

#include <iostream>
using namespace std;void display(const int* ptr) {cout << "Value: " << *ptr << endl;
}int main() {int value = 10;const int* ptrToConst = &value; // 指向常量的指针display(ptrToConst);int* const constPtr = &value; // 常量指针*constPtr = 20;display(constPtr);return 0;
}

运行结果

Value: 10
Value: 20

总结

用于保护数据不被意外修改,提高代码的安全性。

3. const 应用到函数中

定义

函数参数、返回值或成员函数使用 const

语法

void func(const type arg); // 参数是常量
const type func();         // 返回常量
type func() const;         // 常量成员函数

特点

保护函数参数和返回值,确保对象成员函数不修改对象状态。

作用

防止函数修改输入数据,保证成员函数不改变对象状态。

使用场景

当不希望函数更改数据或对象状态时。

注意事项

常量成员函数不能修改任何成员变量。

代码示例

#include <iostream>
using namespace std;class MyClass {
public:MyClass(int val) : value(val) {}int getValue() const { return value; } // 常量成员函数private:int value;
};void printValue(const MyClass& obj) {cout << "Value: " << obj.getValue() << endl;
}int main() {MyClass obj(10);printValue(obj);return 0;
}

运行结果

Value: 10

总结

确保数据和对象状态的安全性和稳定性。


4. const 在类中的用法

定义

在类定义中使用 const 修饰成员变量和成员函数。

语法

class MyClass {
public:MyClass(int val) : constMember(val) {}int getConstMember() const { return constMember; } // 常量成员函数
private:const int constMember; // 常量成员变量
};

特点

增强类封装,确保数据安全。

作用

定义不可变的成员变量和不改变对象状态的成员函数。

使用场景

设计不可变成员或保证成员函数的安全性。

注意事项

常量成员变量必须在构造函数初始化列表中初始化。

代码示例

#include <iostream>
using namespace std;class MyClass {
public:MyClass(int v) : constMember(v) {}int getConstMember() const { return constMember; }private:const int constMember;
};int main() {MyClass obj(10);cout << "Const member: " << obj.getConstMember() << endl;return 0;
}

运行结果

Const member: 10

总结

在类中使用 const 提高成员变量和函数的安全性和稳定性。


5. const 修饰类对象

定义

定义不可改变的类对象。

语法

const ClassName object;

特点

常量对象只能调用其常量成员函数。

作用

确保对象状态不被更改。

使用场景

需要只读访问对象时。

注意事项

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

代码示例

#include <iostream>
using namespace std;class MyClass {
public:MyClass(int v) : value(v) {}int getValue() const { return value; }private:int value;
};int main() {const MyClass constObject(10);cout << "Const object value: " << constObject.getValue() << endl;return 0;
}

运行结果

Const object value: 10

总结

使用 const 修饰类对象可确保对象的完整性和不变性,适合只读场景。

http://www.lryc.cn/news/272586.html

相关文章:

  • Vue 中的 ref 与 reactive:让你的应用更具响应性(上)
  • 华为云CCE-集群内访问-根据ip访问同个pod
  • Kasada p.js (x-kpsdk-cd、x-kpsdk-ct、integrity)
  • Thinkphp 5框架学习
  • 麒麟云增加计算节点
  • 使用Redis进行搜索
  • Oracle修改用户密码
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • Vue解决跨域问错误:has been blocked by CORS policy 后端跨域配置
  • 【谷歌云】注册谷歌云 创建Compute Engine
  • 面试数据库八股文五问五答第四期
  • 2023 年中国金融级分布式数据库市场报告:TiDB 位列领导者梯队,创新能力与增长指数表现突出
  • 基于ExoPlayer的缓存方案实现
  • 前缀和算法 -- 寻找数组的中心坐标
  • autograd与逻辑回归
  • Xshell 从github克隆项目:使用ssh方式。
  • C++:通过erase删除map的键值对
  • 华为月薪25K的自动化测试工程师到底要会那些技能!
  • diffusers 源码待理解之处
  • 正则表达式 详解,10分钟学会
  • 【排序算法】归并排序与快速排序:深入解析与比较
  • 万字长文谈自动驾驶bev感知(一)
  • cfa一级考生复习经验分享系列(十七)
  • 机器人活动区域 - 华为OD统一考试
  • 三、HTML元素
  • 置顶> 个人学习记录一览
  • c++重载操作符
  • C# 如何读取Excel文件
  • Vue2面试题:说一下对vuex的理解?
  • elasticsearch系列五:集群的备份与恢复