91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何解疑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

运城市| 沾益县| 津市市| 南汇区| 三江| 容城县| 中江县| 吉安县| 龙里县| 海丰县| 曲阳县| 泗水县| 水城县| 桐乡市| 武陟县| 西昌市| 固镇县| 尤溪县| 黎川县| 新沂市| 宁安市| 耿马| 金平| 襄城县| 德州市| 保德县| 元阳县| 南城县| 清水县| 团风县| 阜新| 遵义县| 凌源市| 墨竹工卡县| 合水县| 昌乐县| 常宁市| 昭通市| 景东| 明溪县| 章丘市|