面試中關於虛函式的一道試題

2021-04-21 05:05:21 字數 676 閱讀 1015

//看了csdn上面網友發的一道面試題.感覺自己的確該學習一下基礎知識了.

public

class examine

public

virtual

void printfields()  

}public

class b:examine

public

override

void printfields()

,y=", x, y);

console.readline();}}

在new b()的時候,由於b繼承於examine ,因此會執行examine中的建構函式來執行prinefields()的方法.但是由於printfileds()是虛方法,在b中過載了一次.因為會輸出 1 與 0, 而不是1和-1

這裡是關於虛函式的一些比較容易理解的說法.

例如有兩個類人員和老師,老師是人員的子類。人員中有乙個虛函式displayinfo用來顯示資訊。但是,老師類有自己的成員函式也叫displayinfo,並且引數相同,用於顯示老師的資訊。在c++中如果有乙個老師物件,它是由乙個人員的指標指向的(父類指標可以指向子類物件),則當呼叫displayinfo函式時會直接呼叫老師的displayinfo,而不呼叫人員的displayinfo。如果不是displayinfo虛函式,上面的情況就會呼叫人員的displayinfo。

一道關於C 繼承 虛函式 筆試題

include stdafx.h include stdio.h include string.h class father virtual call class son public father virtual call main output son call father name son ...

一道關於fork()的面試題

昨天師兄乙個朋友找外企工作,幫他做程式設計題,其中一道比較有意思,如下 問輸出什麼?為什麼?include include int main 這道題感覺很有意思,算是知識的綜合。考慮清楚了,卻挺簡單 1.fork 的理解 fork 是乙個程序建立函式,乙個程序呼叫fork 函式後,系統先給新的程序分...

一道關於排序的面試題

以前見群裡發了一道面試題 兩個已排好序陣列,a和b,現要求對他們重新聯合排序,合以的小數放入a陣列中,大的數放入b中。這題的關鍵是兩個陣列已經排好序,如果按傳統的方法,進行排序當然沒問題,但就沒有充分利用現有的條件。或許你可以想到插入排序,這樣就可以利用a陣列已排好序的優勢對其進行排序了。但傳統的插...