首页 > 代码库 > 共用数据的保护

共用数据的保护

一)常对象

    加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;
}

结果:

 技术分享

 

 

 

 

共用数据的保护