昨天遇到的一个小问题

盛夏 2012-08-01 10:19:17

C++的一道简答题,问 类与类之间的三种关系:use-a,has-a,is-a
什么意思啊?
我是这样回答的:继承关系,友元关系,派生关系
...全文
96 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
eoTich 2012-08-02
  • 打赏
  • 举报
回复
聚合,组合,泛化
翅膀又硬了 2012-08-01
  • 打赏
  • 举报
回复
use-a关系
如果类A与类B是 use-a 关系,则A具有类型为B、B&、const B&、B*、const B*的一个成员,或者是可以轻易以上述对象之一
返回一个B的函数。于是A可以使用B的程序和数据。

has-a关系
has-a 类似于 use-a,不同之处在于,A负责构建和销毁B并在它的生存期使用它。

is-a关系
如果类A和类B是 use-a 关系,则B必须是A的抽象,B应当只重载基类。is-a的关系通常出现在公共派生的C++中 。

is-like-a(其实就是一种use-a)

派生自基类并增加了一些新的接口...

实现关系
如果类A与接口M是实现关系,则它实现了M所有的纯虚函数。接口实现是Symbian OS中唯一使用多重继承的地方。





例:

汽车是一种交通工具: 汽车 is-a 交通工具
汽车有一个发动机: 汽车 has-a 发动机
is-a 一般是继承关系
has-a 一般是组合关系

本期是我们鸿蒙系列课程的第1期,主要目标是让大家先搞清楚鸿蒙的整体架构,开发环境搭建,代码构建和编译烧录测试等玩法。然后就是核心的代码解读和试验了,譬如liteos_a的启动流程,liteos的shell原理和用法,鸿蒙各组件的加载和使用。鸿蒙的ipc和rpc,ace模块的实现和接口,鸿蒙app的sdk介绍和app开发环境搭建,app和hap的区分,注册鸿蒙app开发者,本次测试应用、上传应用等。 本课程是整个第1期的第1个课程,我们基于HI3516DV300开发板+liteos_a / HI3861开发板+liteos_m这2套组合来整个打通做一遍。从源码gitee下载,本地开发环境部署,到解压、配置、编译、烧录、启动运行,在shell上看一些信息,本地bm工具安装hap包运行,本地开发helloworld程序运行。课程目标是让大家整体的体验harmonyos开发全流程。Harmonyos支持Windows和linux两种开发方式,windows下提供了南向ide(基于vscode+deveco studio插件),可以配置编译并烧录,还可以单步调试。而linux下基于命令行只能配置编译不能烧录(但是开发起来很清爽)。这些开发细节在这个课程都会带大家走一遍。老规矩,一边做一边讲。我昨天已经打好了ubuntu20.04上传到核心课程的虚拟机网盘里了,本课程会使用这个ubuntu200401LTS来做。 课程特色*完全零基础,降低学习门槛。*深入浅出,通俗易懂。不怕学不会,就怕你不学习。*思路清晰、语言风趣,对着视频看也不会想睡觉······*视频 + 文档 + 练习题 + 答疑,全方位保证学习质量。*基础知识 + 思路引导的教学方式,授之以鱼更授之以渔。*系列课程。本教程只是入门篇,后续还有更多更精彩视频更新中。

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧