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();          //這個引用是錯誤的  

  }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM