zoukankan      html  css  js  c++  java
  • 被遗弃的多重继承

    c++支持编写多重继承的代码

    一个子类可以拥有多个父类

    子类拥有所有父类的成员变量

    子类继承所有父类的成员函数

    子类对象可以当作任意父类对象使用

    多重继承的问题一

    通过多重继承得到的对象可能拥有“不同的地址”!!

    解决方案:无

    多重继承的问题二

    多重继承可能产生冗余的成员

    当多重继承关系出现闭合时将产生数据冗余的问题!!!

    解决方案:虚继承

    虚继承能够解决数据冗余问题

    中间层父类不再关心顶层父类的初始化

    最终子类必须直接调用顶层父类的构造函数

    多重继承的问题三

    多重继承可能产生多个虚函数表

    需要进行强制类型转换时,c++中推荐使用新式类型转换关键字    dynamic_cast

    工程开发中的“多重继承”方式:

    单继承某个类+实现(多个)接口

    一些有用的工程建议

    先继承自一个父类,然后实现多个接口

    父类中提供equal()成员函数

    equal()成员函数用于判断指针是否指向当前对象

    与多重继承相关的强制类型转换用dynamic_cast完成

  • 相关阅读:
    James 3.1服务器的安装与搭建
    Mybaits整合Spring
    动态sql
    Mybatis核心配置文件SqlMapConfig.xml
    Mapper动态代理方式
    WPF DatePicker
    UITableView(修改单元格)
    UITableView
    UIImageView
    UILabel
  • 原文地址:https://www.cnblogs.com/sugarWill666/p/9153653.html
Copyright © 2011-2022 走看看