歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

C++中構造函數何時才會構建

當用戶未定義一個默認的構造函數,編譯器並不是在任何時候都給自動給我們定義一個默認的構造函數,它只會在編譯器需要的時候才會生成,並且只有class類型的變量會被初始化,其他的諸如內置類型變量或者指針都不會被初始化,這些變量的初始化工作是程序員的責任。

同樣,一個類的默認復制構造函數也不是什麼時候都會由編譯器自動生成,它需要滿足以下幾種情況:

當class內含有一個member object,而這個member object的class聲明有一個copy construct時(不論是合成的,還是自己寫的);

當class繼承自一個base class,而這個base class存在一個copy construt的時候;

當class聲明了一個或多個虛函數(virtual function)的時候;

當class派生自一個繼承串鏈,其中有一個或者多個虛基類(virtual base class)的時候。

Copyright © Linux教程網 All Rights Reserved