C++ const 限定符的全面介绍
2023-12-29 04:06:58
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
修饰类对象可确保对象的完整性和不变性,适合只读场景。
文章来源:https://blog.csdn.net/qq_39811006/article/details/135280501
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!