已采納回答 / onemoo
從C++語(yǔ)言的角度來(lái)說(shuō),這就是虛函數(shù)的功能,你只需記住即可。如果你深究原因,這和語(yǔ)言的實(shí)現(xiàn)有關(guān),大部分平臺(tái)和編譯器都是借助“虛函數(shù)表”來(lái)實(shí)現(xiàn)的,你搜搜這個(gè)東西就能明白。 不過(guò)你也要知道:C++并沒(méi)有強(qiáng)制要求用虛函數(shù)表來(lái)實(shí)現(xiàn)多態(tài),C++標(biāo)準(zhǔn)只是規(guī)定了行為,并沒(méi)有規(guī)定具體實(shí)現(xiàn)方式。
2015-11-27
最贊回答 / 流浪_老
有差別 ?的 ?函數(shù)是什么 ?不要大括號(hào) 能稱(chēng)為 函數(shù)嗎 ?例如你c語(yǔ)言里面 ?main () 你不寫(xiě) ?大括號(hào)試試 ?
2015-11-26
已采納回答 / eksea
可以,析構(gòu)函數(shù)定義成虛析構(gòu)函數(shù)沒(méi)啥副作用,建議定義析構(gòu)函數(shù)時(shí)都加上virtual
2015-11-24
最贊回答 / DoDream
接口是抽象類(lèi),抽象類(lèi)是只要有1個(gè)成員函數(shù)是純虛函數(shù)即可,虛基類(lèi)(接口)則是所有的成員全部是純虛函數(shù)抽象類(lèi)不可以實(shí)例化Flyable *p1的意思是定義一個(gè)基類(lèi)指針,用來(lái)指向子類(lèi)對(duì)象,通過(guò)基類(lèi)指針可實(shí)現(xiàn)多態(tài)。推薦你一個(gè)不錯(cuò)的網(wǎng)站,百度搜索C++技術(shù)網(wǎng),第一個(gè)就是了,里面有一些關(guān)于C++多態(tài)的文章,可以加深你對(duì)C++多態(tài)的了解,這個(gè)網(wǎng)站還有很多不錯(cuò)的資源可以下載,例如電子書(shū),IDE等。
2015-10-27
最贊回答 / 紫泉
簡(jiǎn)單的說(shuō),C/C++傳參都是先復(fù)制一個(gè)副本,將副本傳入進(jìn)去,如果沒(méi)有&,那么就會(huì)相當(dāng)于str的改變只是在函數(shù)中改變,并不會(huì)影響到實(shí)參str。 ?如果加了&, 那么傳入的就是實(shí)參str的引用,所謂引用就是實(shí)參本身,就是對(duì)實(shí)參的操作,這樣,函數(shù)內(nèi)部改變str,實(shí)參str也會(huì)改變
2015-10-26
最新回答 / Uestc_L
默認(rèn)是有符號(hào)整形,加上 unsigned 就定義為無(wú)符整形,就能表示更大的值,根據(jù)你的表示數(shù)據(jù)的需要,選擇性的使用 unsigned?
2015-10-24
最新回答 / Uestc_L
被調(diào)用了,但是父類(lèi)的構(gòu)造函數(shù)里面沒(méi)有任何動(dòng)作,所以你看不到被調(diào)用了,如果你在父類(lèi)構(gòu)造函數(shù)里面寫(xiě)上?Animal(){cout<<"Animal()";} 你就會(huì)發(fā)現(xiàn)父類(lèi)構(gòu)造函數(shù)被調(diào)用的痕跡
2015-10-16