1. 程式人生 > >C++:虛函數和多態

C++:虛函數和多態

變量 bsp ++ 多態 直接 構造函數 沒有 相同 派生類

C++中虛函數的唯一用處就是構成多態。

C++提供多態的目的是:可以通過基類指針對所有派生類(包括直接派生和間接派生)的成員變量和成員函數進行“全方位”的訪問,尤其是成員函數。如果沒有多態,我們只能訪問成員變量。

只有派生類的虛函數遮蔽基類的虛函數(函數原型相同)才能構成多態。

構造函數不能是虛函數。析構函數可以聲明為虛函數,而且有時候必須要聲明為虛函數。派生類析構函數始終會調用基類的析構函數

下面是構成多態的條件:

    • 必須存在繼承關系;
    • 繼承關系中必須有同名的虛函數,並且它們是遮蔽(覆蓋)關系。
    • 存在基類的指針,通過該指針調用虛函數。

C++:虛函數和多態