有如下程序 #include using namespace std; class A{ public: vi
有如下程序 #include <iostream> using namespace std; class A{ public: virtual void funcl( ){ cout<<"A1"; } void func2( ) { cout<<"A2"; }; class B:public A { public: void funcl( ){ cout<<"B1"; } void func2( ){ cout<<"B2"; } }; int main( ) { A *p=new B; p->func1 ( ); p->func2( ); return 0; } 運(yùn)行此程序,屏幕上將顯示輸出
A.B1B2
B.A1A2
C.B1A2
D.A1B2
正確答案:C解析:本題考查的是虛函數(shù)的概念。在C++中,一個(gè)派生類的對(duì)象可以被它的任何一個(gè)基類的指針?biāo)赶?或被基類類型的引用所引用)。若基類和派生類中存在一模一樣的成員函數(shù),那么通過(guò)該基類指針(或引用)調(diào)用這樣的成員函數(shù),究竟是應(yīng)該調(diào)用基類中的還是調(diào)用派生類中的呢?答案是:若這個(gè)成員函數(shù)被定義成虛函數(shù),那么就調(diào)用派生類中的;否則會(huì)調(diào)用基類中的。本題是一個(gè)典型的例子,func1()是虛函數(shù),func2()是一般成員函數(shù),而且在派生類與基類中都存在兩個(gè)這樣的函數(shù)。在主函數(shù)中,語(yǔ)句A*p=new B;定義了一個(gè)基類的指
詞條內(nèi)容僅供參考,如果您需要解決具體問(wèn)題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。