码迷,mamicode.com
首页 > 其他好文 > 详细

共用数据的保护

时间:2017-04-12 12:22:17      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:pac   ons   构造函数   main   space   引用   变量   ret   列表   

一)常对象

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

结果:

 技术分享

 

 

 

 

共用数据的保护

标签:pac   ons   构造函数   main   space   引用   变量   ret   列表   

原文地址:http://www.cnblogs.com/hhkobeww/p/6698579.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!