zoukankan      html  css  js  c++  java
  • 类型兼容规则

    定义:
    类型兼容规则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代。
    因为公有继承,派生类得到了基类除了构造函数,析构函以外的所有成员。这样,公
    有派生类实际具备了基类的所有功能,凡是基类能解决的问题,公有派生类都可以解
    决。
    类型兼容规则所指的替代包括以下的情况:
    1.派生类的对象可以隐含转换为基类的对象。
    2.派生类的对象可以初始化基类的引用。
    3.派生类的指针可以隐含转化为基类的指针。
    注意:在替代之后,派生类的对象就可以作为基类的对象使用,但只能使用从基类继承
    的成员。
    例如:
    class B{...}
    class D:public B{...}
    B b1,*pb1;
    D d1;
    这时,
    (1)派生类对象就可以隐含转换为基类的对象,即使用派生类对象中从基类继承来的成
    员,逐个赋值给基类对明象成员:
    b1 = d1;
    (2)派生类的对象也可以初始化基类对象的引用:
    B &rb = d1;
    (3)派生类对象的地址也可以隐含转化为指向基类的指针:
    pb1 = &d1;
    好处:
    由于类型兼容规则的引入,对于基类及公有派生类的对象,可以使用相同的函数统一进行
    处理,因为当函数的形参为基类的对象(或引用、指针)时,实参可以派生类的对象(或指针)
    ,而没有必要为每一个类设计一个单独的模块,大大提高了程序的效率,这正是c++的又一特色,
    即多态性,可以说类型兼容规则是多态的重要基础之一。

  • 相关阅读:
    蓝桥杯--2012--奇怪的比赛(全排列)
    mysql数据库读写分离教程
    Linux中安装java JDK
    mysql数据库主从复制教程
    mysql数据库安装教程
    http报文详解
    查看磁盘I/O命令iostat详解
    linux如何查看服务器当前的并发访问量
    Another app is currently holding the yum lock; waiting for it to exit...
    linux清理缓存cache
  • 原文地址:https://www.cnblogs.com/wangyonglong/p/5178458.html
Copyright © 2011-2022 走看看