c語(yǔ)言里不管什么函數(shù)都不可以聲明成虛函數(shù)的,只有c++里才可以
目前創(chuàng)新互聯(lián)公司已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、齊河網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
inline, static, constructor ,template 函數(shù)都不能 為虛函數(shù),而析構(gòu)函數(shù)可以。
為什么呢:
inline: 編譯器替換; 而虛函數(shù)是為了解決運(yùn)行期間綁定。
static:class 成員; 編譯期間就給class了。
constructor: 構(gòu)造函數(shù)表示要生成一個(gè)class的object;假設(shè)是virtual的,那就說(shuō)不知道這個(gè)實(shí)例化derived還是based的class。但是類(lèi)型實(shí)例化必須在編譯期確定(否則編譯器不知道到底是什么對(duì)象了)
template:模板實(shí)例是在 compile-time,virtual就意味著在run-time確定。這讓編譯器設(shè)計(jì)者為難了,這就是說(shuō)虛函數(shù)表要指向各種版本的 template function 實(shí)例,代碼設(shè)計(jì)者confuse,編譯器設(shè)計(jì)者也覺(jué)得蠻煩。
您好,很高興回答您的問(wèn)題。
由于沒(méi)有看到其他的內(nèi)容所以只能從結(jié)構(gòu)上來(lái)說(shuō)明相關(guān)含義。
void digdisplay()表示的是這個(gè)函數(shù)的定義,其中void表示函數(shù)不帶任何的返回值,digdisplay表示的是函數(shù)名,括號(hào)中表示函數(shù)的參數(shù),這里是空的,所以表示不帶任何的返回值。
以上就是我的回答,敬請(qǐng)指正。