亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

平安县| 子洲县| 昭觉县| 乌兰浩特市| 镇宁| 临洮县| 皮山县| 桑植县| 巴彦淖尔市| 延津县| 赤峰市| 偃师市| 丰镇市| 邛崃市| 阿拉善盟| 澄迈县| 连云港市| 南岸区| 曲阳县| 湖州市| 邹城市| 萨嘎县| 大名县| 曲周县| 石楼县| 河西区| 郁南县| 贵阳市| 乳山市| 福州市| 舒兰市| 墨竹工卡县| 阜阳市| 黔东| 潮安县| 安多县| 崇州市| 固安县| 云浮市| 广河县| 咸宁市|