華為面試題:什么函數(shù)不能聲明為虛函數(shù)

在華為、中興等企業(yè)招聘筆試面試中曾經(jīng)出現(xiàn)過這樣一道題目:什么函數(shù)不能聲明為虛函數(shù)梢夯?

該題答案為:普通函數(shù)(非成員函數(shù))、靜態(tài)成員函數(shù)晴圾、內(nèi)聯(lián)成員函數(shù)颂砸、構(gòu)造函數(shù)、友元函數(shù)

該題考查的是虛函數(shù)聲明的相關(guān)概念。其解析如下:

虛函數(shù)通過繼承方式來體現(xiàn)出多態(tài)作用人乓,它必須是基類的非靜態(tài)成員函數(shù)勤篮,其訪問權(quán)限可以是protected或public,在基類的類定義中定義虛函數(shù)的一般形式是:

virtual 函數(shù)返回值類型虛函數(shù)名(形參表){ 函數(shù)體 }

常見的不能聲明為虛函數(shù)的有:普通函數(shù)(非成員函數(shù))色罚、靜態(tài)成員函數(shù)碰缔、內(nèi)聯(lián)成員函數(shù)、構(gòu)造函數(shù)戳护、友元函數(shù)金抡。

(1)普通函數(shù)不能聲明為虛函數(shù)。普通函數(shù)(非成員函數(shù))只能被重載(overload)腌且,不能被重寫(override)梗肝,聲明為虛函數(shù)也沒有什么意思,因此編譯器會在編譯時綁定函數(shù)切蟋。

(2) 構(gòu)造函數(shù)不能聲明為虛函數(shù)统捶。構(gòu)造函數(shù)一般用來初始化對象,只有在一個對象生成之后柄粹,才能發(fā)揮多態(tài)作用喘鸟。如果將構(gòu)造函數(shù)聲明為虛函數(shù),則表現(xiàn)為在對象還沒有生成的時候來定義它的多態(tài)驻右,這兩點(diǎn)是不統(tǒng)一的什黑。另外,構(gòu)造函數(shù)不能被繼承堪夭,因而不能聲明為虛函數(shù)愕把。

(3) 靜態(tài)成員函數(shù)不能聲明為虛函數(shù)。靜態(tài)成員函數(shù)對于每個類來說只有一份代碼森爽,所有的對象都共享這份代碼恨豁,它不歸某個對象所有,所以也沒有動態(tài)綁定的必要性爬迟。

(4) 內(nèi)聯(lián)(inline)成員函數(shù)不能聲明為虛函數(shù)橘蜜。內(nèi)聯(lián)函數(shù)就是為了在代碼中直接展開,減少函數(shù)調(diào)用開銷的代價付呕。虛函數(shù)是為了在繼承后對象能夠準(zhǔn)確的執(zhí)行自己的動作计福,這是不可能統(tǒng)一的。另外徽职,內(nèi)聯(lián)函數(shù)在編譯時被展開象颖,虛函數(shù)在運(yùn)行時才能動態(tài)的綁定函數(shù)。

(5) 友元函數(shù)不能聲明為虛函數(shù)姆钉。友元函數(shù)不屬于類的成員函數(shù)说订,不能被繼承抄瓦。

設(shè)置虛函數(shù)時須注意以下幾點(diǎn):

只有類的成員函數(shù)才能說明為虛函數(shù);

靜態(tài)成員函數(shù)不能是虛函數(shù)克蚂;

內(nèi)聯(lián)函數(shù)不能為虛函數(shù)闺鲸;

構(gòu)造函數(shù)不能是虛函數(shù);

析構(gòu)函數(shù)可以是虛函數(shù)埃叭,而且通常聲明為虛函數(shù)摸恍。

本文已收錄于《橫掃Offer--程序員招聘真題詳解700題》一書,開點(diǎn)工作室著赤屋,清華大學(xué)出版社立镶。更多程序員筆試面試真題的精彩詳解請參見該書。

為保證書稿質(zhì)量类早,作者及出版社在編寫完成后經(jīng)過反復(fù)多次的審核媚媒、校對和修改,力求為讀者奉獻(xiàn)一本內(nèi)容詳實(shí)涩僻、嚴(yán)謹(jǐn)缭召、準(zhǔn)確、精美的實(shí)用寶典逆日,因此上市時間有所延后嵌巷,望各位讀者諒解。該書目前已進(jìn)入印刷環(huán)節(jié)室抽,預(yù)計(jì)8月下旬各大網(wǎng)上書店開始發(fā)售搪哪。我們將會在第一時間通知該書的上市購買信息,并將舉行評論送書活動坪圾,以感謝各位讀者的支持晓折。詳細(xì)情況請持續(xù)關(guān)注微信公眾賬號“開點(diǎn)工作室”。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末兽泄,一起剝皮案震驚了整個濱河市漓概,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌病梢,老刑警劉巖垛耳,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異飘千,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)栈雳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進(jìn)店門护奈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人哥纫,你說我怎么就攤上這事霉旗。” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵厌秒,是天一觀的道長读拆。 經(jīng)常有香客問我,道長鸵闪,這世上最難降的妖魔是什么檐晕? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮蚌讼,結(jié)果婚禮上辟灰,老公的妹妹穿的比我還像新娘。我一直安慰自己篡石,他們只是感情好芥喇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凰萨,像睡著了一般继控。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上胖眷,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天武通,我揣著相機(jī)與錄音,去河邊找鬼瘦材。 笑死厅须,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的食棕。 我是一名探鬼主播朗和,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼簿晓!你這毒婦竟也來了眶拉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤憔儿,失蹤者是張志新(化名)和其女友劉穎忆植,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谒臼,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡朝刊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蜈缤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拾氓。...
    茶點(diǎn)故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖底哥,靈堂內(nèi)的尸體忽然破棺而出咙鞍,到底是詐尸還是另有隱情房官,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布续滋,位于F島的核電站翰守,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏疲酌。R本人自食惡果不足惜蜡峰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望徐勃。 院中可真熱鬧事示,春花似錦、人聲如沸僻肖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽臀脏。三九已至劝堪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間揉稚,已是汗流浹背秒啦。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留搀玖,地道東北人余境。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像灌诅,于是被迫代替她去往敵國和親芳来。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容

  • 題目類型 a.C++與C差異(1-18) 1.C和C++中struct有什么區(qū)別猜拾? C沒有Protection行為...
    阿面a閱讀 7,663評論 0 10
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法即舌,類相關(guān)的語法,內(nèi)部類的語法挎袜,繼承相關(guān)的語法顽聂,異常的語法,線程的語...
    子非魚_t_閱讀 31,645評論 18 399
  • 1. 結(jié)構(gòu)體和共同體的區(qū)別盯仪。 定義: 結(jié)構(gòu)體struct:把不同類型的數(shù)據(jù)組合成一個整體紊搪,自定義類型。共同體uni...
    breakfy閱讀 2,127評論 0 22
  • struct與class的區(qū)別 C的struct與C++的class的區(qū)別:struct只是作為一種復(fù)雜數(shù)據(jù)類型定...
    geekzph閱讀 1,576評論 0 4
  • 1.面向?qū)ο蟮某绦蛟O(shè)計(jì)思想是什么全景? 答:把數(shù)據(jù)結(jié)構(gòu)和對數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的方法封裝形成一個個的對象耀石。 2.什么是類?...
    少帥yangjie閱讀 5,006評論 0 14