摘要: 我們知道,對一個對象的所有成員來說,它們的析構(gòu)函數(shù)被調(diào)用的順序總是和它們在構(gòu)造函數(shù)里被創(chuàng)建的順序相反。那么,如果允許上面的情況(即,成員按它們在初始化列表上出現(xiàn)的順序被初始化)發(fā)生,編譯器就要為每一個對象跟蹤其成員初始化的順序,以保證它們的析構(gòu)函數(shù)以正確的順序被調(diào)用。這會帶來昂貴的開銷。所以,為了避免這一開銷,同一種類型的所有對象在創(chuàng)建(構(gòu)造)和摧毀(析構(gòu))過程中對成員的處理順序都是相同的,而不管成員在初始化列表中的順序如何。
閱讀全文