zoukankan      html  css  js  c++  java
  • C++派生类与基类对象赋值情况

    一 、普通赋值 (同名隐藏)

    子类对象调用和父类相同的函数名,该父类的函数名会被隐藏,只会调用子类的函数。

    Class A

    {

    public:

      void show();

      void show(int);

    }

    Class B : public A

    {

    public :

      void show();

      void printf();

    }

    int main()

    {

      B b;

      b.show();

      a.show();         //这时候子类已经隐藏父类的方法,父类不能在调用自己的函数

      a.show(0)       //同上

    }

    父类的引用或指针被子类对象的对象或地址赋值后,它会调用父类自己相应的方法

    二、子类对象地址给父类指针赋值

    通过子类的对象的地址给父类的指针赋值----->父类指针只能调用子类中从父类继承的函数或者变量

      int main()

      {

        A * a ;

        B b;

        a = &b;  

        a->show();           

        a->printf();           //这个是错误的调用,不能调用子类的函数方法

      }

    三 、子类对象给父类的引用赋值

       父类的引用只能访问由子类继承父类的函数或者变量  

      int main()

      {

        A  &a;

        B b;

        a = b;

        a.show();

        a.list();          //这个引用是错误的  

      }

  • 相关阅读:
    php解析xml文件的方法
    while倒数阶乘的和
    菱形代码
    0929课堂随记
    0929作业
    0928练习作业
    HelloJava
    Java例题
    Hello World(本博客启程篇)
    vue 如何实现在函数中触发路由跳转
  • 原文地址:https://www.cnblogs.com/liunx1109/p/9613556.html
Copyright © 2011-2022 走看看