组合类与友员类都能够通过对象或成员函数访问其他相关类,但这两者有什么本质区别呢?

友元类通常是为了方便存取另一个类的私有数据成员而声明的,例如A是B的友元类,A可以存取B中的私有成员,但是类A与类B可以说是没有任何关系的,友元类A并不属于类B的一部分。类的组合是用来描述一类复杂的对象。将对象嵌入到类中的这样一种描述复杂类的方法叫做“类的组合”,含有其他对象的类成为组合类,被嵌入的对象是作为组合类的一部分,此时被嵌入的对象就相当于组合类中的一般数据成员可以被组合类访问。组合类是一种is a part of的关系,当类A是类B的组合类时,类A是类B的一部分,类B的完整的属性与方法需要有类A的参与才能实现。而友元类则是两个属性与方法都已完整的类,只是为了存取更方便而提出的一种概念。友元类的功能可以通过其他成员函数的调用来达到,即友元类可以省掉不用,但是组合类却不可以,省掉之后功能就不一样了。

组合类和友员类的差异有哪些(C++)相关推荐

  1. 类各种成员的访问权限 及 友员类和友员函数

    #ifndef _TEST_H #define _TEST_H #include <iostream> using namespace std; /******************** ...

  2. 1.6 C++基础知识_静态成员_友员

    静态成员 问:假设在main函数中创建了许多个Person类对象,要怎么在代码中统计一共创建了多少个Person类对象呢? 答:可以使用静态成员,在Person类中创建一个静态成员cnt,在构造函数中 ...

  3. 实验名称: 类的构造函数、析构函数和友员成员应用

    实验四 (实验课时:2  实验性质:设计) 实验名称:  类的构造函数.析构函数和友员成员应用 实验目的: (1)练习类的构造函数.析构函数的定义和使用方法: (2)练习对象数组.对象指针的使用: ( ...

  4. 组合与继承有什么共同点和差异?通过组合生成的类与被组合的类之间的逻辑关系是什么?继承呢?

    组合与继承有什么共同点和差异?通过组合生成的类与被组合的类之间的逻辑关系是什么?继承呢? 组合与继承的?共同点: 都是能够使用已经封装好的类. 组合与继承的差异: 通过组合生成的类一旦消失,被组合生成 ...

  5. java在dog中定义name变量,组合构造 冯跃峰 java中组合的应用(不相干的类共同完成一个功能)+构造器回顾...

    java中组合的应用(不相干的类共同完成一个功能)+构造器回顾:今天我们了解到java的组合.可以说java组合是非常的重要的.可以对类进行封装,将底层的内容封装起来.甚至于java的继承都没有其重要 ...

  6. 用友2020校招java笔试题_用友Java类笔试题大全

    如下为大家汇总的是一份用友Java类笔试题,欢迎大家关注! 1.Hashtable和HashMap有什么区别? a.Hashtable是继承自陈旧的Dictionary类的,HashMap继承自Abs ...

  7. 结合继承的思想,定义项目经理类Manager及程序员类Coder【行为:工作work】

    /* 结合继承的思想,分析下列需求并实现 定义项目经理类Manager [属性:姓名 工号 工资 奖金] [行为:工作work] 定义程序员类Coder [属性:姓名 工号 工资] [行为:工作wor ...

  8. 习题 11.10 将本章11.8节中的程序片段加以补充完善,成为一个完整的程序。在程序中使用继承和组合。在定义Professor类对象prof1时给出所有数据的初值,然后修改prof1的生日数据。。。

    C++程序设计(第三版) 谭浩强 习题11.10 个人设计 习题 11.10 将本章11.8节中的程序片段加以补充完善,成为一个完整的程序.在程序中使用继承和组合.在定义Professor类对象pro ...

  9. 优友机器人价格_优友U05类人型机器人 换汤不换药

    在过去机器人听起来似乎和现在的社会太遥远,但是随着科技的进步,机器人已不再是那么神秘了.尽管现在的机器人层出不穷,但功能单一,没有多大的创新,只不过是换汤不换药.和电影里的机器人相差甚远. 北京时间1 ...

最新文章

  1. ccc计算机比赛如何报名,整理:加拿大的CCC是什么,怎么报名?
  2. Sobel 边缘实现
  3. PHP 批量生成静态html
  4. 从零学习 vim 一个多月, 感觉最有用的三个教程
  5. 基于Centos7.2搭建Cobbler自动化批量部署操作系统服务
  6. 常用Nagios配置命令
  7. java中File类应用:遍历文件夹下所有文件
  8. DB2连接不上mysql数据库_一次DB2数据库连接失败(SQLSTATE=08001)的解决方法
  9. 2019长江课堂作业答案_“绝户网”捕捞长江鳗鱼苗 检察机关:“全链条”担责...
  10. 服务器即将维护完成,新一轮大服务器即将开启:3月26日维护8小时
  11. 【报告分享】汽车行业“无接触”营销风险初探.pdf(附下载链接)
  12. Java I/O系统之Object流
  13. 怎样将程序猿写出来的程序打包成安装包(最简单的)
  14. shell基础之99乘法表
  15. Jquery特殊属性
  16. Android网络多线程断点续传下载
  17. 网络管理员考试试题分类精解电子书
  18. 生产制造业如何谋求数字化转型?需要哪些信息化系统做支撑?
  19. 基于单片机1KW高频感应加热器控制系统仿真设计(毕设)
  20. Cocos Creator入职学习日记——篇1(KeyWord:艺术字、渐变色、透明过渡特效)

热门文章

  1. dncnn图像去噪_深立井井壁图像的卷积神经网络去噪方法
  2. 相机照片删除了怎么恢复?60%的人都用这三步解决了
  3. P13、14-Windows与网络基础-NTFS之文件、文件夹权限
  4. 正大国际:交易有三种境界作为交易者的你们怎么看?
  5. Linux时间子系统之Tick广播层(Tick Broadcast)
  6. 【TrailHead】Create a test harness app and component
  7. nginx配置wss
  8. 「云原生 | Docker」手把手教你搭建镜像仓库并上传/下载镜像
  9. CTF MD5之守株待兔,你需要找到和系统锁匹配的钥匙
  10. 【设计模式】面向对象的四个特点