c++ - 子对象和包含对象之间的区别

标签 c++ inheritance containment

子对象包含对象 有什么区别?为了构造从另一个类派生的类的实例,首先必须创建子对象,然后必须创建派生对象。

问题:

  1. 派生对象是否包含子对象?

  2. 如何可视化对象结构的差异

    a) 包含另一个对象

    b) 派生自另一个类

    a) 和 b) 中的对象是否具有相同的结构?

最佳答案

是的,派生对象包含其基类子对象的实例。

从物理上讲,包含对象(作为成员)和从对象派生之间确实没有区别。此外,该语言将两者都称为子对象:基类子对象和成员子对象。

虚拟继承通常会引入一些额外的家庭数据,这使得它比仅仅“包含”一个基本子对象更复杂,但普通继承通常只是简单地“包含”。

作为成员派生和包含之间的区别实际上只存在于概念层面上。不同的访问语法,不同的功能。例如,推导涉及多态性等语言特性。

关于c++ - 子对象和包含对象之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11427439/

相关文章:

inheritance - 继承图和协作图有什么区别?

C++:覆盖已弃用的虚拟方法时的弃用警告

java - 对象如何从 HashMap 中获取其键?

c++ - gluPickMatrix - 出了点问题,一个对象总是在现场

c++ - std::equal_range 提示 "sequence not ordered"

c++ - Opencv,在编译时找出像素的类型

Python 使用自定义 __new__ 子类化一个类

ios5 - MFMessageComposeViewController 和 UIAppearance,苹果说不要自定义

c++ - 插入二叉搜索树