C++中虛繼承的構造(construct)和析構(destruct)順序

來源:互聯網
上載者:User

虛繼承(virtual inheritance)的構造(construct)和析構(destruct)順序

在多重繼承的時候, 構造順序是 虛繼承按順序優先, 再次是其他按順序, 由基類至衍生類別; 析構順序正好相反;

代碼如下:

/*  * cppprimer.cpp  *  *  Created on: 2014.1.10  *      Author: Spike  */      /*eclipse cdt, gcc 4.8.1*/      #include <iostream>  #include <string>        class ZooAnimal {  public:      ZooAnimal () {          std::cout << "ZooAnimal Constructor!" << std::endl;      }      void zooprint (void) { std::cout << "Zoo Animal!" << std::endl; }  };        class Bear : public virtual  ZooAnimal {  public:      Bear (){          std::cout << "Bear Constructor!" << std::endl;      }      void bearprint (void) { std::cout << "Bear!" << std::endl; }  };        class Character {  public:      Character () {          std::cout << "Character Constructor!" << std::endl;      }  };        class BookCharacter : public Character {  public:      BookCharacter () {          std::cout << "BookCharacter Constructor!" << std::endl;      }  };        class ToyAnimal {  public:      ToyAnimal () {          std::cout << "ToyAnimal Constructor!" << std::endl;      }  };        class TeddyBear : public BookCharacter, public Bear,                                  public virtual ToyAnimal  {  public:      TeddyBear () {          std::cout << "TeddyBear Constructor!" << std::endl;      }  };        int main (void)  {      TeddyBear TB;  }

輸出:

ZooAnimal Constructor!  ToyAnimal Constructor!  Character Constructor!  BookCharacter Constructor!  Bear Constructor!  TeddyBear Constructor!

更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/cplus/

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。