上c++課的時候記得老師說虛函式的限制有以下四點:
(1)只有成員函式才能宣告為虛函式,因為虛函式僅適用於有繼承關係的類物件,所以普通函式不能宣告為虛函式;
(2)虛函式必須是非靜態成員函式,因為靜態成員函式不受限與某個物件;
(3)內聯函式不能宣告為虛函式,因為內聯函式不能再執行中動態確定其位置;
(4)建構函式不能宣告為虛函式,多型是指不同物件對同一訊息有不同的行為特徵,虛函式作為執行過程中多型的基礎,主要是針對物件的,而建構函式是在物件產生之前執行的,因此,虛建構函式是沒有意義的。
建構函式,析構函式能否宣告為虛函式
建構函式不能宣告為虛函式 析構函式可以宣告為虛函式,而且有時是必須宣告為虛函式 不建議在建構函式和析構函式裡面呼叫虛函式。建構函式不能宣告為虛函式的原因是 1 構造乙個物件的時候,必須知道物件的實際型別,而虛函式行為是在執行期間確定實際型別的。而在構造乙個物件時,由於物件還未構造成功。編譯器無法知道...
建構函式和析構函式能否宣告為虛函式?
建構函式不能宣告為虛函式,析構函式可以宣告為虛函式,而且有時是必須宣告為虛函式。不建議在建構函式和析構函式裡面呼叫虛函式。建構函式不能宣告為虛函式的原因是 解釋一 所謂虛函式就是多型情況下只執行乙個。而從繼承的概念來講,總是要先構造父類物件,然後才能是子類物件。如果建構函式設為虛函式,那麼當你在構造...
建構函式和析構函式能否宣告為虛函式?
建構函式不能宣告為虛函式,析構函式可以宣告為虛函式,而且有時是必須宣告為虛函式。不建議在建構函式和析構函式裡面呼叫虛函式。建構函式不能宣告為虛函式的原因是 解釋一 所謂虛函式就是多型情況下只執行乙個。而從繼承的概念來講,總是要先構造父類物件,然後才能是子類物件。如果建構函式設為虛函式,那麼當你 在構...