已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八章友元 目的 要求 重点 难点 8 1友元的说明和定义 功能 如果将外界的某个对象说明为某一个类的友元 那么这个外界对象就可以访问类中的私有成员 其中 外界对象可以是 另一个类的成员函数 一般的函数 一个类格式 声明可放在类的公用或私有部分 前面加上关键字friend classpoint intx y public point int int voidprint classcircle public friendvoidprint friendclasspoint friendvoidpoint print voidprint 8 2友元函数 说明 是指独立于类外的一般的外界函数 加上关键字friend 成为某类的友元函数 它可访问类中的私有成员 例 definestrmax32 include includeclassmyclass intx y char string public myclass int int char friendintsum myclasscl 通过传递参数来确定对象friendintstrlength myclasscl 友元函数无this指针friendvoidprint myclasscl myclass myclass intvx intvy char str x vx y vy string newchar strmax strcpy string str intsum myclasscl returncl x cl y 可直接访问类中私有成员intstrlength myclasscl returnstrlen cl string voidprint myclasscl cout x cl x y cl y n cout string cl string n voidmain myclasscl 10 10 mymyclassobject cout thesumis sum cl n cout thestringis strlength cl n print cl 注意问题 1 如果在某个类A中使用其它类B 类B要在类A之前声明或定义 classrealset classintset 使用realset的内容 2 voidsettoreal realset set 此函数传递对象指针而不是对象 原因 值传递与地址传递之间的区别 3 inset类中调用realset类的addelem 函数会导致系统开销大 因此 考虑使用友元来直接访问realset的私有成员 4 两个类中的print 函数完全一样 考虑是否可以共享 由于使用友元需传递对象参数 而两个类的print 函数参数类型不一样 因此无法共享 8 3友元成员 说明 将另一个类的成员函数声明为某个类的友元函数 使得此友元函数可访问某类的私有成员 格式 除了有关键字friend 还要加上成员函数所在的类名 上例可作如下修改 classrealset classintset public voidsettoreal realset friendvoidrealset settoint intset classrealset public voidsettoint intset friendvoidintset settoreal realset voidintset settoreal realset set set card card for inti 0 ielems i float elems i voidrealset settoint intset set set card card for inti 0 ielems i int elems i 8 4友元类 说明 某一个类是另一个类的友元 那么 作为友元的类中的所有成员函数都可访问另一个类中的私有成员 格式 friendclass 类名 includeclassstack classnode intdata node prev public node intd node n data d prev n friendclassstack classstack node top public stack top 0 voidpush inti intpop voidstack push inti node n newnode i top top n intstack pop node t top if top top top prev intc t data deletet returnc return0 main intc stacks for inti 0 i c s push c for i 0 i 10 i cout s pop return1 友元的特性 1 类A 类B A要在B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CSAE 423-2025智能网联摩托车和智能网联轻便摩托车 数据平台技术要求及试验方法
- T/UNP 183-2024管道沟槽开挖支护用新型支护系统应用技术规程
- T/GITIF 003-2022基于信息物理系统(CPS)的产线设备故障 预测技术规范
- T/CI 641-2024水生态修复成效评估技术规范
- T/CADERM 6008-2023灾害狭小空间现场伤情评估与急救要求
- T/CSAE 294-2023车载时间敏感网络通讯交换芯片功能和性能要求
- AI在新闻学中的应用
- 2025~2026学年甘肃定西市渭源县度北师大版上册学情练习一年级数学试卷【附答案】
- 2025-2026学年辽宁省辽阳市初中政治八年级期末下册自我评估历年考试题附答案
- 2025-2026学年浙江省富德市初中数学七年级期末上册深度自测核心强化题(附答案)
- 2026卫生系统招聘考试(心理治疗)历年参考题库含答案详解
- 地理信息安全在线培训考试题库(含答案)
- 24J113-1 内隔墙-轻质条板(一)
- 患者用药指导全国知识技能竞赛考试题库(带答案)
- 公司租赁个人车辆协议书范本
- 2025年中煤电力有限公司招聘笔试参考题库含答案解析
- 中等职业学校英语教学大纲附件五:词汇表
- 【苏泊尔电器营运资金管理问题及完善分析13000字 (论文)】
- 2022年浙江省宁波市慈溪实验中学高一数学文联考试卷含解析
- 深圳市中小学生流感疫苗接种知情同意书
- 病理学课件:肿瘤-实验课
评论
0/150
提交评论