- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5数据保护与共享课案
1、静态数据成员 是类的所有对象共享的成员,而不是某个对象的成员; 对多个对象来说,静态数据成员只存储在一个地方,供所有对象使用; 静态数据成员的值对每个对象都是一样的,并且其值可以被任何一个对象更新; 注意: 静态数据成员在定义或说明时前面加上关键字static; 静态数据成员是静态存储的,它是静态生存期,必须对它进行初始化; 静态数据成员的初始化格式: 数据类型 类名::静态数据成员名=值; 说明: 初始化只能在类体外进行,前面不加static,以免与一般静态变量或对象混淆; 类的静态数据成员是在所有对象之外单独开辟内存空间的; 静态数据成员在程序运行前分配内存空间,到程序结束时释放内存; 静态私有数据成员只能成员函数来访问。 静态共有数据成员即可用类名访问,也可通过对象来访问。 [例]分析下列程序的输出结果。 2、静态成员函数 格式static 静态成员函数名(参数表)类名::静态成员函数名(参数表) 注意事项: 静态成员函数和静态数据成员是类的一部分; 静态成员函数的实现中不能直接引用本类中的非静态成员,可以引用本类中的静态成员; 静态成员函数中要引用非静态成员时,可以通过对象来引用; [例] 分析下列程序的输出结果。 第2节 类的友元 类的机制实现了数据的隐藏与封装,类的数据成员一般定义私有成员;成员函数一般定义为共有,提供类与外界的通信接口。 但:有时需定义一些函数,这些函数不是类的一部分,但又需要频繁访问类的数据成员。 解决方法:定义这些函数为友元函数 1、友元函数 友元函数是在类中用关键字friend修饰的非成员函数 友元函数可以是一个普通的函数,也可以是其它类的成员函数。 通过类的对象可以访问类的私有成员。 2、友元类 若A类为B类的友元类,则A类的所有成员函数都是B类的友元函数,都可以访问B类的私有和受保护的成员。 注意: 友元关系是不可以传递的 友元关系是单向的 友元关系是不被继承的 第3节 共享数据的保护 C++虽然采取了不少有效的措施(如设private保护)以增加数据的安全性,但是有些数据却往往是共享的,人们可以在不同的场合通过不同的途径访问同一个数据对象。有时在无意之中的误操作会改变有关数据的状况,而这是人们所不希望出现的。 既要使数据能在一定范围内共享,又要保证它不被任意修改,这时可以使用const,即把有关的数据定义为常量。 1、对象的常成员 用const修饰的成员函数为常成员函数。 常成员函数声明格式: 类型说明符 常成员函数名(参数表)const ; 注意: const是函数类型的一部分 常成员函数不能更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数 const关键字可以用于对重载函数的区分 3、对象的常引用 在声明引用时用const修饰,被声明的引用就是常引用。例:Box box1(12,25,30),const box=box1; 常引用所引用的对象不能被更新 经常用 常引用作为函数的参数 4、指向对象的常指针 定义一般形式: 类名 *const 指针变量名=对象地址; 例: Box box1(1,1,1); Box *const p1=box1; 指针变量的指向关系不变 常用来做函数的形参,目的是不允许在函数调用的过程中改变指针变量的值。 5、指向常对象的指针变量 指向常对象的指针变量 定义一般形式: const 类型名 *指针变量; 例:const Box Box(1,2,3); const Box *pbox=box; 说明: 常对象只能用指向常对象的指针变量来指向 指向常对象的指针变量还可以用来指向非const对象 ,此时不能通过指针改变指针所指向对象的数据成员 [例]读程改错 * 数据的共享和 共用数据的保护 第一节 静态数据 类的对象独立拥有自己的数据成员空间,共享类的成员函数 对象之间相互独立,消息是对象之间交互的唯一方式 如果一个类的不同对象需要共享数据,怎么办? 目的:解决数据共享问题,即不通过全局对象,而实现同类多个对象之间的数据共享。 private: static int s; s是私有的静态数据成员; #include iostream.h class Myclass { public: Myclass(int a,int b,int c); void GetNumber(); void GetSum(); private: int A,B,C; static int Sum; }; int Myclass::Sum=0; Myclass::Myclass(int a,int b,int c) { A
您可能关注的文档
- 保险中介发展模式.ppt
- 保证货物运输质量模拟题(答案).doc
- 5专题2光合作用和呼吸作用.ppt
- 保险公司11月份KPI分析报告.pptx
- 保险专题-故事与素质.ppt
- 保证保温墙抹灰施工质量QC成果.ppt
- 保险代理人资格考试系列培训一.ppt
- 5上市公司债券登记存管业务专题介绍(张真诚).pptx
- 保险公司三会经营.ppt
- 保险公司会议经营.ppt
- 2025年浙江体育职业技术学院单招职业倾向性考试题库附答案.docx
- 2025年合肥科技职业学院单招职业技能考试题库必威体育精装版.docx
- 2025年梧州职业学院单招职业技能测试题库必威体育精装版.docx
- 2025年山西职业技术学院单招职业倾向性考试题库附答案.docx
- 2025年安庆医药高等专科学校单招职业适应性测试题库及参考答案1套.docx
- 2025年喀什职业技术学院单招职业适应性考试题库精选.docx
- 2025年山东轻工职业学院单招职业适应性考试题库必威体育精装版.docx
- 2025年桂林师范高等专科学校单招职业倾向性测试题库精选.docx
- 胃脘痛中医护理查房.pptx
- 2025年三门峡职业技术学院单招职业倾向性测试题库精编.docx
最近下载
- 悬挑支模架专项施工方案(范例).docx VIP
- QY130K7C汽车起重机技术规格书-tdm-D2-20240708_20240713085532.pdf
- 2024年河南省驻马店市小升初数学高频考点检测卷含解析.doc VIP
- Module4 Planes,ships and trains.期末模块复习课件-外研版八年级上册.pptx VIP
- 电伴热带说明书.docx
- JGT491-2016 建筑用网格式金属电缆桥架.docx
- 蓝色点线背景的大数据云计算PPT模板.pptx VIP
- 第28课 初识人工智能 教案 义务教育人教版信息科技三年级全一册.pdf
- 江苏省各地市2023年中考物理试题【10套】(附真题答案).docx VIP
- 溴酸镉安全技术说明书 CAS No 14518-94-6.pdf VIP
文档评论(0)