1、執行如下的c++**,輸出是什麼?
[cpp]
class a
}; class b: public a
}; int main()
class a};
class b: public a};
int main()
答案:輸出b::fun with number 10。由於a是乙個指向b例項的引用,因此在執行的時候會呼叫b::fun。但預設引數是在編譯期決定的。在編譯的時候,編譯器只知道a是乙個型別a的引用,具體指向什麼型別在編譯期是不能確定的,因此會按照a::fun的宣告把預設引數number設為10。
這一題的關鍵在於理解確定預設引數的值是在編譯的時候,但確定引用、指標的虛函式呼叫哪個型別的函式是在執行的時候。
C 面試題精選
1 執行如下的c 輸出是什麼?class a class b public a int main 答案 輸出b fun with number 10。由於a是乙個指向b例項的引用,因此在執行的時候會呼叫b fun。但預設引數是在編譯期決定的。在編譯的時候,編譯器只知道a是乙個型別a的引用,具體指向什...
面試題精選 微軟試題
微軟試題 1 直線飛行 一架飛機載滿油飛行距離為1,n架飛機最遠能飛多遠?就是不是兜圈沒有迎頭接應的情況,這問題就是n架飛機能飛多遠?存在的極值問題是不要重複飛行,比如兩架飛機同時給一架飛機加油同 時飛回來即可認為是重複,或者換句話說就是離出發點越遠在飛的飛機 就越少,這個極值條件是顯然的,因為n架...
幾個面試題精選
面試題35 typedef和define有什麼區別 1 用法不同 typedef用來定義一種資料型別的別名,增強程式的可讀性。define主要用來定義常量,以及書寫複雜使用頻繁的巨集。2 執行時間不同 typedef是編譯過程的一部分,有型別檢查的功能。define是巨集定義,是預編譯的部分,其發生...