3-C++程序的结构1.4
共享数据的保护
对于既需要共享、又需要防止改变的数据应该声明为常量。
1、常引用
如果在声明引用时用const修饰,被声明的引用就是常引用。常引用所引用的对象不能被更新。声明形式如下:
const 类型说明符 &引用名;
2、常对象
常对象时这样的对象,它的数据成员值在对象的整个生存期间内不能被改变。也就是说,常对象必须进行初始化,而且不能被更新。声明如下:
类名 const 对象名;
3、用const修饰的类成员
a、常成员函数
使用const关键字修饰的函数为常成员函数,其格式如下:
类型说明符 函数名(参数表) const;
注意:
1)const是函数类型的一个组成部分,因此在函数定义部分也要带const关键字。
2)常成员函数不能更新对象的数据成员,也不能调用该类中没有const修饰的成员函数。
3)如果将一个对象说明为常对象,则通过该 常对象只能调用它的常才成员函数,而不能调用其他成员函数。
4)const关键字可以用于对重载函数的区分。
#include<iostream>
using namespace std;
class R
{
public:
R(int r1,int r2){R1=r1;R2=r2;}
void print();
void print() const;
private:
int R1,R2;
};
void R::print()
{
cout<<R1<<";"<<R2<<endl;
}
void R::print() const
{
cout<<R1<<";"<<R2<<endl;
}
int main()
{
R a(5,4);
a.print();//调用void print()
const R b(20,52);
b.print();//调用void print() const
return 0;
}
b、常数据成员
如果一个类中说明了常数据成员,那么任何函数中都不能对该成员赋值。构造函数对该数据成员进行初始化,就只能通过初始化列表。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】