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、常数据成员
如果一个类中说明了常数据成员,那么任何函数中都不能对该成员赋值。构造函数对该数据成员进行初始化,就只能通过初始化列表。
最新文章
- MySQL中的增删改查
- 制作一个顶部图片可以拉伸放大缩小效果的tableViewHeader
- Hadoop 2.6 MapReduce运行原理详解
- Unity抗锯齿
- 8月3日奥威Power-BI V11 视频交流开课啦!
- android开发 textview根据字数长度自动调整字体大小
- 11G RAC 简单命令
- PHP之路,Day1 - PHP基础
- ADC及DA的头文件复析
- bottle + vue.js 打造你的单页应用
- Linux操作系统学习_用户态与内核态之切换过程
- 《Java2 实用教程(第五版)》教学进程
- 判断语句之单if
- 深入java----垃圾回收
- Synchronized 和 Lock 锁在JVM中的实现原理以及代码解析
- CAN通信详解
- 逆袭之旅DAY10.东软实训.
- optparse模块解析命令行参数的说明及优化
- lodash用法系列(4),使用Map/Reduce转换
- MySQL数据库Innodb储存引擎----储存页的结构