中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解疑C++多態覆蓋問題

發布時間:2021-10-27 18:55:14 來源:億速云 閱讀:161 作者:柒染 欄目:編程語言

這篇文章給大家介紹如何解疑C++多態覆蓋問題,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

C++編程語言中的多態性是一個比較重要的概念,在實際應用中有許多比較重要的細節問題值得我們去關注。在這里就先來了解一下C++多態覆蓋的一些問題,讓大家從中對這方面的知識有一個更加深入的了解。

為了解決C++多態覆蓋,需要盡可能的使用指針,而不是對象。C++在處理兩者的時候是不一致的。在進行函數傳遞時,基類有可能將繼承類的類型給掩蓋掉,從而喪失了多態。

class Base  {  public:  virtual void print()  {  cout<<"Base "<<endl;  }  };  class SubA: public Base  {  public:  void print()  {  cout<<"SubA "<<endl;  }  };  class SubB: public Base  {  public:  void print()  {  cout<<"SubB\n";  }  };  class Super  {  private:  Base a1;//對象  Base *a2;//指針  public:  Super(Base &a,Base *b)  {  aa1 = a;  a2 = b;  }  void print1()  {  a1.print();  }  void print2()  {  a2->print();  }  };  int main()  {  Base b;  SubA sa;  SubB sb;  Super s1(b,&b);  s1.print1();  s1.print2();  Super s2(sa,&sb);  s2.print1();  s2.print2();  }

上面結果可以看出

同是Base的子類,使用對象的類型被基類覆蓋掉了,而使用指針則沒有問題。

我認為是Super構造時,類的賦值造成的。

賦值和復制構造函數,經常會產生一些意想不到的副效應,而指針則不會。

在使用STL容器時,也盡量使用指針存放,除非是只對值感興趣。

關于如何解疑C++多態覆蓋問題就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

呼和浩特市| 枣庄市| 洛宁县| 安多县| 互助| 绥宁县| 磐安县| 威宁| 全椒县| 枣强县| 资阳市| 宁晋县| 登封市| 祁东县| 河源市| 奇台县| 霍林郭勒市| 阳山县| 当阳市| 济南市| 邵阳市| 亳州市| 镇赉县| 上虞市| 永济市| 夏河县| 云浮市| 封开县| 怀仁县| 塘沽区| 临湘市| 石城县| 二手房| 正阳县| 景宁| 峨眉山市| 巴彦县| 新野县| 察哈| 抚顺县| 育儿|