网站大量收购独家精品文档,联系QQ:2885784924

数据的共享与保护.pptVIP

  1. 1、本文档共120页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

若一个类为另一个类的友元,则此类的所有成员都能访问对方类的私有成员。声明语法:将友元类名在另一个类中使用friend修饰说明。0102友元类友元类举例classA{friendclassB;public:voidDisplay(){coutxendl;}private:intx;}classB{public:voidSet(inti);voidDisplay();private:Aa;};voidB::Set(inti){a.x=i;}voidB::Display(){a.Display();}友元关系是不能传递的B类是A类的友元,C类是B类的友元,C类与A类之间,如果没有声明,就没有任何友元关系。友元关系是单向的如果声明B类是A类的友元,B类的成员函数就可以访问A类的私有和保护数据,但A类的成员函数却不能访问B类的私有、保护数据。友元关系是不被继承的如果类B是类A的友元,类B的派生类并不会自动成为类A的友元。这就如同,别人信任你,但是不见得也信任你的孩子。标识符的作用域与可见性01对象的生存期02类的静态成员(微视频)03类的友元04共享数据的保护(微视频)05多文件结构和编译预处理命令(微视频)06综合实例——个人银行账户管理程序(微视频)07小结08第5章数据的共享与保护虽然数据隐藏保证了数据的安全性,但是各种形式的数据共享却又不同程度地破坏了数据的安全性。因此,对于既需要共享又需要防止改变的数据,应该将其声明为常量。因为常量在程序运行期间是不可以改变的,所以可以有效地保护数据。5、共享数据的保护常类型的对象必须进行初始化,而且不能被更新。1常对象:必须进行初始化,不能被更新。const类名对象名或:类名const对象名2常引用:被引用的对象不能被更新。const类型说明符引用名3常数组:数组元素不能被更新(后面讲)。类型说明符const数组名[大小]...4常指针:指向常量的指针(后面讲)。5常类型常对象用const修饰的类成员常引用5、共享数据的保护01常对象的数据成员值在对象的整个生存期间不能被改变。即:常对象必须进行初始化,而且不能被更新。03const类型说明符对象名; 或:02声明常对象的语法形式:04类型说明符const对象名;与基本数据类型的常量相似,常对象的值也是不能被改变的。05常对象常对象举例classA{public:A(inti,intj){x=i;y=j;}...private:intx,y;};constAa(3,4); //a是常对象,不能被更新C++语法如何保障类型的常对象的值(常对象的数据成员)不被改变呢?01改变对象的数据成员值可以通过类的成员函数进行。因此,语法规定不能通过常对象来调用普通的成员函数。02可是如此一来,常对象还有什么用呢?因为这样的话,常对象就没有任何可用的对外接口了。03常成员函数可以解决这个问题。04常对象用const修饰的类成员常成员函数使用const关键字说明的函数。常成员函数不更新对象的数据成员。常成员函数说明格式:

类型说明符函数名(参数表)const;

这里,const是函数类型的一个组成部分,因此在实现部分也要带const关键字。const关键字可以被用于参与对重载函数的区分通过常对象只能调用它的常成员函数。常数据成员使用const说明的数据成员。#includeiostream1usingnamespacestd;2classR{3public:4R(intr1,intr2){R1=r1;R2=r2;}5voidprint();6voidprint()const;7private:8intR1,R2;9};10例5-7常成员函数举例voidR::print(){ coutR1:R2endl;}voidR::print()const{ coutR1;R2endl;}intmain(){ Ra(5,4); a.print(); //调用voidprint() constRb(20,52); b.print(); //调用v

文档评论(0)

zhang1745 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档