cpp继承总结

08-3 cpp面向对象-继承总结

继承-总结

继承结束了,让我们简单总结一下:

  1. 继承中的专有名词:

    子类又称之为:派生类。

    父类又称之为:基类。

  2. 继承的语法

    继承的基本语法:class 子类名 :继承方式 父类

    其中,继承可以多继承,即同一个子类继承多个父类。多继承语法是:class 子类 :继承方式 父类1, 继承方式 父类2 ...

    在 c++实际开发环境下不建议使用多继承的方式继承类。

  3. 继承方式

    继承一共有三种方式

    1. 公共继承(public
    2. 保护继承(protected
    3. 私有继承(private

    继承的三种继承方式就是类中成员的三种权限。

  4. 继承方式的区别

    1. 无论什么方式继承,都无法访问父类中的私有成员(private
    2. 如果父类中,属性的公开权限大于继承方式的公开权限,则会在继承后,会修改公开权限大于继承方式的成员的权限为当前继承方式的权限。
      • 公共继承(public):无法访问父类的私有属性(private)。除私有属性外的属性都可以被继承,且不会修改属性的权限。
      • 保护继承(protected):无法访问父类的私有属性(private);父类中公共成员(public)将会被修改成为保护权限(protected)。
      • 私有继承(private)无法访问父类的私有属性(private);父类中所有成员,都会被修改成为私有权限(private)。
    3. 一个子类继承了父类所有成员,但下列情况除外:
      • 父类的构造函数、析构函数和拷贝构造函数。
      • 父类的重载运算符。
      • 父类的友元函数。
  5. 继承中的对象模型

    子类会继承父类所有的非静态成员属性,会占用相应的内存空间,包括私有属性(private),但是私有属性(private)被编译器屏蔽,无法访问。

    可以使用“开发人员命令提示符”查看单独类的具体成员,语法如下:cl /d1 reportSingleClassLayout<类名> <cpp源文件>

  6. 继承中构造和析构顺序

    继承中,会先调用父类的构造函数,再调用子类的构造函数。析构时,先调用子类的析构函数,再调用父类的析构函数。

    符合先构造的后析构的规律。

  7. 继承同名成员处理方式

    子类对象可以直接访问子类同名成员。子类对象加上作用域可以访问到父类中的同名成员(包括同名成员属性和成员函数)。

    继承中的同名静态成员的访问和同名成员一样,都是添加作用域来实现访问。由于静态成员的特殊性(所有的类的对象共享一份静态成员,静态成员存储在内存的全局区),所以也可以不创建类的对象直接使用作用域来访问。

  8. 菱形继承

    1. 菱形继承是存在着两个派生类(类B和类C)继承同一个基类(类A),同时存在着另外一个类(类D)同时继承这两个派生类。
    2. 菱形继承会出现二义性。我们解决二义性的方式是添加作用域。
    3. 菱形继承可能会出现多次继承,我们需要使用虚继承(virtual)的方式处理。
    4. 虚继承的原理是:继承一个虚基类指针(vbptr),虚基类指针(vbptr)指向虚继承表(vbtable),虚继承表(vbtable)记录数据偏移量,最后找到数据所在的内存空间地址,访问到真实的数据。
文章「cpp继承总结」,由本站用户「Admin」发布。文章仅代表Admin观点,不代表本站立场。
页面网页地址「https://xiaozhiyuqwq.top/p/949」。
如您对文章及其附件提出版权主张,或进行引用转载等,请查看我们的【版权声明】
无评论:-)

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇