2 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊
const 寫在函數(shù)后頭還=0
這里不是const=0,
虛函數(shù)表示方法是
virtual 返回值 函數(shù)名(參數(shù)表)
{
函數(shù)體
}
在繼承的時(shí)候可以在子類中從新定義這個(gè)函數(shù)。
如果你的子類中都重新定義了這個(gè)函數(shù),那個(gè)父類中函數(shù)的定義就沒有什么用了所以可以不定義只說明就行,也就是定義為
純虛函數(shù)
形如:
virtual 返回值 函數(shù)名(參數(shù)表)=0;
這里就不用定義實(shí)際的函數(shù)了。

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
=0 表示純虛函數(shù)
他用來做什么呢??
主要是為了實(shí)現(xiàn)晚捆綁,讓子類可以重新定義函數(shù)體。以便不同的子類有不同的行為。
為什么一定要這么做和編譯實(shí)現(xiàn)有關(guān)。原先的習(xí)慣寫法會(huì)造成早捆綁,即編譯期的捆綁,而現(xiàn)在這樣,如果傳進(jìn)一個(gè)對(duì)象,程序會(huì)在運(yùn)行期識(shí)別對(duì)象所屬子類而表現(xiàn)不同行為。
Thinking in C++對(duì)此有很詳細(xì)的解釋
另一種用途是設(shè)計(jì)需要,C++沒有像Java那樣的接口類,而且沒有abstract關(guān)鍵字,實(shí)現(xiàn)接口或抽象類只能應(yīng)用虛函數(shù)
- 2 回答
- 0 關(guān)注
- 820 瀏覽
添加回答
舉報(bào)