C++继承

子类的默认成员函数

构造函数

  • 先调用父类的默认构造, 初始化父类的成员
  • 再调用子类的构造, 初始化子类的的成员
  • 父类没有默认构造, 在子类初始化列表中显示调用父类的构造

拷贝构造函数

  • 子类的默认拷贝构造调用父类的拷贝构造
  • 在自己定义拷贝构造的初始化列表中先调用父类的拷贝构造,
    如果不调用则自动调用父类默认构造函数

赋值运算符重载

  • 默认的赋值运算符重载函数,自动调用父类的赋值运算符重载函数
  • 显示定义的赋值运算符重载, 会和父类的赋值运算符重载函数同名, 形成隐藏

析构函数:

  • 在底层都是 : destructor
    * 会造成同名隐藏
  • 子类析构不要调用父类的析构

菱形继承 : 数据冗余 二义性(钻石继承)

  • virtual 虚拟继承 解决
    • 公共的父类成员只保存一份, 通过虚基表指针和虚基表访问父类公共成员
    • 虚基表 : 虚基表指针

多继承中指针偏移

  • 类型决定能够解引用的内容(查看字节的个数)
  • 对应类型的指针只能获取对应类型的成员
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值