首页 > 代码库 > 共用数据的保护
共用数据的保护
一)常对象
加const关键字即可,例,const box(a,b,c)
二)常对象成员
1.在构造函数进行赋值时常数据成员只能利用初始化列表进行初始化
2.常成员函数可以引用普通数据成员,常数据成员和常对象,但都不能改变其值
3普通成员函数可以引用普通数据成员(能改变其值),常数据成员(不能改变其值),但不能引用常对象;
常对象 | const box(a,b,c); |
常数据成员 | const int a; |
常成员函数 | void show() const |
三)指向常对象的指针指针变量
1. 指向常变量的指针变量可以指向const和普通变量,但不可以改变所指变量的值
普通的指针变量只能指向普通变量,可以改变所指变量的值
2. 指向 对象 的常指针变量 time *const p;
指向 常对象 的指针变量 const time *p;
3. 指向 常对象 的指针变量最常用于函数的形参,目的是在保护形参指针所指的对象在执行过程中不被修改
#include<iostream> using namespace std; class time { public: int h; int m; int s; time(int a,int b,int c):h(a),m(b),s(c){} }; void show(const time *p)///形参是指向const型time对象的指针变量 { ///main函数的t1是只读对象不能被修改 cout<<p->h<<endl; } int main() { time t1(1,2,3); show(&t1); return 0; }
结果:
但去掉 const 则可以改变其值
#include<iostream> using namespace std; class time { public: int hour; int m; int s; time(int a,int b,int c):hour(a),m(b),s(c){} }; void show(time *p) { p->hour=2; cout<<p->hour<<endl; } int main() { time x(1,5,6); show(&x); return 0; }
结果:
共用数据的保护
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。