《C++語言程序設計》作業題_第1頁
《C++語言程序設計》作業題_第2頁
《C++語言程序設計》作業題_第3頁
《C++語言程序設計》作業題_第4頁
《C++語言程序設計》作業題_第5頁
已閱讀5頁,還剩41頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、v1.0可編輯可修改C+吾言程序設計作業題-、判斷題()1、寫在類體內的函數都是內聯函數。()2、通常的拷貝初始化構造函數的參數是某個對象的指針名()3、重載運算符可改變原運算符的優先級和結合性。()4、在設置了默認參數值后,調用函數的對應實參就必須省略()5、析構函數是一種函數體為空的成員函數()6、某類的友元類的所有成員函數可以存取或修改該類中的私有成員()7、對象數組的元素可以是不同類的對象()8、函數的參數個數、類型及位置都相同,只是函數返回值類型不同,這 不是重載函數。()9、派生類是從基類派生出來的,但它不能再生成新的派生類()10、構造函數和析構函數都不能重載。11v1.0可編輯

2、可修改()11、在公有繼承中,基類中只有公有成員對派生類的對象是可見的()12、this指針是一個指向正在被某個成員函數操作的對象的指針()13、一維對象指針數組的每個元素應該是某個類的對象的地址值。()14、在C+”,定義函數時必須給出函數的類型()15、析構函數是一種函數參數表為空的成員函數()16、派生類的繼承方式有兩種:公有繼承和私有繼承()17、自身類對象的引用不可以作為該類的成員()18、多重繼承情況下,派生類中對基類成員的訪問不會出現二義性。()19、可以在類的構造函數中對靜態數據成員進行初始化()20、多重繼承情況下,派生類的構造函數的執行順序取決于定義派生類 時所指定的各基類

3、的順序。()21、在單繼承情況下,派生類中對基類成員的訪問不會出現二義性。#v1.0可編輯可修改()22、轉換函數不是成員函數,它是用來進行強制類型轉換的()23、在公有繼承中,基類中的保護成員對派生類對象是可見的()24、虛基類是用來解決多繼承中公共基類在派生類中只產生一個基類子 對象的問題。()25、在保護繼承中,基類中的公有成員對派生類對象是可見的()26、抽象類是指一些不能定義對象的類()27、虛函數是用virtual關鍵字說明的成員函數。()28、動態聯編是在運行時選定所要調用的成員函數的()29、聲明派生類時,在派生類的頭部都要明確列出其直接基類和間接基類()30、在C+”對于運算

4、符重載,只能重載已有的運算符()31、在程序中可以直接調用構造函數()32、解決多繼承情況下出現的二義性的方法之一是使用作用域運算符33v1.0可編輯可修改()33、函數重載是一種多態現象,它屬于動態聯編()34、友元函數、友元類的聲明可以放在類定義中的任何地方。()35、抽象類是一些不能實例化的類,即不能定義對象的類()36、const對象不能隨意被修改,但const成員函數可以修改const對象()37、拷貝初始化構造函數的參數只能是對某個對象的引用()38、類的公有靜態成員既可以用類的對象訪問,也可以用作用域運算符 通過類名訪問。()39、拷貝初始化構造函數的參數可以是某類的對象名()4

5、0、在類體外定義的函數若沒有關健字inline 說明,則都是外聯函數()41、C+”的所有函數調用都是傳引用調用()42、析構函數說明為虛函數是沒有意義的()43、派生類的構造函數的成員初始化列表中,可以包含基類的子對象初始化#v1.0可編輯可修改()44、構造函數說明為虛函數是沒有意義的()45、對每個可重載的運算符來說,它既可以重載為友元函數,又可以重 載為成員函數,還可以重載為非成員函數。()46、C+”的所有函數調用都是傳值調用()47、使用關鍵字class定義的類中,缺省的訪問權限是公有(public )()48、使用關鍵字class定義的類中,缺省的訪問權限是私有(private

6、)()49、如果一個成員函數只存取類的靜態數據成員,則可將該成員函數說 明為靜態成員函數。()50、說明和定義類的對象時,類名前面不需要加class關鍵字。、填空1、如果一個函數沒有返回值,定義時需用類型說明符 說明。2、通常的拷貝初始化構造函數的參數是 o3、對象成員的表示與結構體成員的表示相同,使用運算符 或。4、已知:p是一個指向類A數據成員m的指針,a1是類A的一個對象,如果 要給對象a1的數據成員m賦值為5,應娥值。5、C+”,繼承分為單繼承和 ,而繼承方式可分為 >>6、任何類中允許有三種類型的成員,它們分別是 > > 55v1.0可編輯可修改7、能夠用來訪

7、問當前作用域內與局部變量同名的全局變量。8、在類內部定義的?口成員不能被不屬于該類的成員函數來存取,定義為 的成員則可以在類外部進行存取。9、靜態數據成員的賦初值是在進行。10、C+勺函數如果在返回類型、參數類型、參數個數、 上有所不同,則認為是不同的函數(注:對于同名函數而言)。11、如果不能成功地分配所需要的內存時,new返回 o12、在編譯時將所用函數的代碼嵌入到主調函數中,這種函數稱為 。13、如果靜態成員函數中要引用非靜態成員時,可通過 來引用。14、當使用delete運算符釋放一個對象時,delete會自動調用。15、從一個基類派生的繼承為單繼承,從多個基類派生的繼承為 。16、多

8、繼承下,可能造成對基類中某個成員訪問的 。17、如果想要使公共基類在派生類中只產生一個基類子對象,則必須將這個基 類設為。18、面向對象程序設計的三大特征是封裝性、繼承性和 。19、多態從實現的角度來講可以劃分為兩類,編譯時的多態和 。20、將運算符+重載為類的友元函數時,定義前置+有個參數,而定義后置+有個參數。21、抽象類不能實例化,即不能定義一個抽象類的 。22、關鍵字> > 和 在C+"用來建立新的數據類型。23、定義在類內部的函數為 ,編譯器會在調用該函數處,將函數代碼 的拷貝在調用函數處展開。24、在類定義時如果沒有定義構造函數,編譯系統會自動生成一個 。25

9、、類的 成員只能被該類的成員函數或友元訪問。26、使關鍵字class定義的類中缺省的訪問權限是 。27、一個類中只可能定義 個析構函數。28、當一個類的成員是另一個類的對象時,該對象稱為 。29、靜態數據成員在定義或說明時前面要加上關鍵字 。30、C+®序必須包含頭文件后,才能使用輸入輸出流。31、在說明const變量時,必須對該變量 。32、在需要基類對象的任何地方都可以使用 的對象來代替。33、帶有純虛函數的類是 。67v1.0可編輯可修改34、動態聯編可以通過 或引用所標識的對象來操作虛函數。35、限定符用來聲明只讀變量。36、公有成員函數的集合稱為類的。37、重載不能改變運算

10、符的 ?口。38、運算符 動態分配一個對象。39、能夠定義一個在不同數據類型基礎上完成同一任務的函數。40、每個對象都維護了一個指向自身的指針,這個指針稱為 指針。41、處于同一層次的各基類構造函數的執行順序取決于 所指定的各基類的順序。42、是用來初始化類的數據成員的一種特殊的成員函數。43、受保護的成員不能被外界引用,但它可以被派生類的 5用。44、靜態聯編工作是在 階段完成的。45、在C+”,對虛函數來說,不能聲明 ,但可以聲明虛析構函數46、成員函數的實現中不能直接引用類中說明的非靜態成員。47、const char *p 說明了 p是指向 的指針。48、通常,類的成員函數的訪問模式是

11、 ,數據成員的訪問模式是049、當用受保護的繼承從基類派生一個類時,基類的公有成員成為派生類的 成員,基類的受保護成員成為派生類的 成員。50、如果一個類包含一個或多個純虛函數,則該類為 。三、選擇題1、下列有關類的說法不正確的是。類是一種用戶自定義的數據類型; 只有類中的成員函數或友元函數才能存取類中的私有成員;在類中,如果不作特別說明,所有的數據均為私有類型; 在類中,如果不作特別說明,所有的成員函數均為公有類型;2、局部變量可以隱藏全局變量,那么在有同名全局變量和局部變量的情形時, 可以用提供對全局變量的訪問。作用域運算符指針運算符提取運算符插入運算符3、類模板的使用實際上是將類模板實例

12、化成一個具體的 。函數對象類類的成員4、下列輸出字符'd'的方法中,是錯誤的。77v1.0可編輯可修改 cout<<put('d'); cout<<' d';(,d,); char a=,d,; cout<<a;5、已知類A中一個成員函數說明為:void set(A &a);,其中A &a的含意是。指向類A的指針為a;將a的地址值賦值給變量set;a是類A的對象引用,用來作函數set()的形參; 變量A與a按位相與作為函數set()的參數;6、派生類的構造函數的成員初始化列表中,不能包含 。基類

13、的構造函數; 派生類中子對象的初始化;基類的子對象初始化; 派生類中一般數據成員的初始化;7、關于引用,下列的說法中錯誤的是 。 引用是給被引用的變量取一個別名; 引用主要是用來作函數的形參和函數的返回值;在聲明引用時,要給它另開辟內存單元; 在聲明引用時,必須同時使它初始化;8、在下列說法中,不會調用拷貝初始化構造函數。當對象作為函數實參傳遞給函數形參時;明確表示由一個對象初始化另一個對象時;用賦值運算符"="將一個對象賦給另一個同類對象時;當對象作為函數返回值時;9、 是不可以作為某類的成員的。 自身類對象的指針 自身類的對象 自身類對象的引用 另一個類的對象10、關于

14、虛函數的描述中, 是正確的。 虛函數是一個static類型的成員函數; 虛函數是一個非成員函數; 基類中說明了虛函數后,派生類中與其對應的函數可不必說明為虛函數; 派生類的虛函數與基類的同名虛函數應具有不同的參數個數和類型; 1、下列四項選擇中, 不是流類的對象。 cin cout buff cerr89v1.0可編輯可修改12、下列關于const限定符的說法中,錯誤的是 。const限定符是左結合的,即它修飾在它左邊的類型;在說明const變量時,必須對該變量進行初始化;與宏定義符號常量的區別是,const將產生一個具有類型的符號;const變量是常量變量,所以一個 const變量可以被多次

15、賦予不同的常量;13、在下列的各類函數中,不是類的成員函數。構造函數析構函數友元函數拷貝初始化構造函數14、不是析構函數的特征。一個類中只能定義一個析構函數;析構函數名與類名相同; 析構函數只是用來釋放對象,所以析構函數是空函數; 析構函數不指定數據類型,并且也沒有參數;15、下述靜態數據成員的特性中,是錯誤的。說明靜態數據成員時前面要加修飾符 static ;靜態數據成員要在類體外進行初始化; 在程序中引用公有靜態數據成員時,要在靜態數據成員名前加類名和作用域運算符; 靜態數據成員是個別對象所共用的;16、具有轉換函數功能的構造函數,應該是 。不帶參數的構造函數;帶有一個參數的構造函數;帶有

16、兩個以上參數的構造函數;缺省構造函數;17、下列繼承方式中, 種繼承方式是錯的。 公有繼承; 私有繼承; 完全繼承; 保護繼承;18、下列對繼承關系的描述中,是對的。 在公有繼承中,基類中的公有成員和私有成員在派生類中都是可見的; 在公有繼承中,基類中只有公有成員對派生類的對象是可見的; 在私有繼承中,基類中只有公有成員對派生類是可見的; 在私有繼承中,基類中的保護成員對派生類的對象是可見的;99v1.0可編輯可修改19、對定義重載函數的下列要求中, 是錯誤的。 要求參數的個數不同; 要求參數中至少有一個類型不同; 要求參數個數相同時,參數類型不同; 參數個數和類型相同時,要求函數的返回值不同

17、;20、當一個函數無返回值時,定義它時函數的類型應是 。void任意int無21、重載函數在調用時選擇的依據中,錯誤的是 。參數個數參數的類型參數的位置函數的返回值類型22、有關構造函數的說法不正確的是。構造函數的名字和類的名字一樣; 構造函數在說明類的對象時自動執行;構造函數無任何函數類型;構造函數有且僅有一個;23、下列的 是函數的引用調用。 形參是指針,實參是地址值; 形參是變量,實參是引用;形參是指針,實參是數組名; 形參是引用,實參是變量;24、在一個被調用函數中,關于return語句使用的描述,是錯誤的被調用函數中可以不用return語句; 被調用函數中可以使用多個return語句

18、; 被調用函數中,如果有返回值,就一定要有 return語句; 被調用函數中,一個return語句可返回多個值給調用函數;25、在C+”,關于下列設置參數默認值的描述中, 是正確的。 不允許設置參數的默認值;設置參數默認值只能在定義函數時設置; 設置參數默認值時,應該是先設置右邊的再設置左邊的;設置參數默認值時,應該全部參數都設置;26、關于new運算符的下列描述中,是錯誤的。 它可以用來動態創建對象和對象數組;使用它創建的對象和對象數組可以使用運算符delete刪除;1011v1.0可編輯可修改 使用它創建對象時要調用構造函數; 使用它創建對象數組時必須指定初始值;27、運算符*的功能是。用

19、來表示指向對象指針對指向類成員指針的操作;用來表示對象對指向類成員指針的操作;用來表示指向對象指針對類成員的操作;用來表示對象對類成員的操作;28、在一個函數中,要求通過函數來實現一種不太復雜的功能,并且要求加快執行速度,選用合適。內聯函數重載函數遞歸函數嵌套調用29、采用函數重載的目的在于 。實現共享減少空間提高速度使用方便,提高可讀性30、下列函數中,不能重載。 成員函數 非成員函數析構函數構造函數31、在下列關鍵字中,用以說明類中公有成員的是 。 public private protected friend32、有關類和對象的說法下列不正確的有。對象是類的一個實例;任何一個對象只能屬于

20、一個具體的類;一個類只能有一個對象;類與對象的關系和數據類型與變量的關系相似;33、在下列關于標準輸入流的描述中,正確的是 。 流提取運算符不能自動識別變量的類型,所以要用輸入格式控制申;變量和流提取運算符一起使用時,要象 scanf函數那樣在變量前加上&cin與流提取運算符” >>” 一起,將從鍵盤輸入的數送到變量中保存起來;使用標準輸入流,必須包含頭文件"”;34、是構造函數的特征。 構造函數的函數名與類名不同;一個類中只能定義一個構造函數;構造函數可以設置缺省參數;1111v1.0可編輯可修改構造函數必須指定類型說明;35、C +語言中規定函數的返回值的類型

21、是由 。return語句中的表達式類型所決定; 調用該函數的主調用函數類型決定;調用該函數時系統臨時決定; 在定義該函數時所指定的函數類型所決定;36、下列對派生類的描述中,是錯的。一個派生類可以作為另一個派生類的基類;派生類中繼承的基類成員的訪問權限到派生類保持不變; 派生類的成員除了它自己的成員外,還包含了它的基類的成員;派生類至少有一個基類;37、帶有虛基類的多層派生類構造函數的成員初始化列表中都要列出虛基類的構造函數,這樣將對虛基類的子對象初始化 。 與虛基類下面的派生類個數有關; 多次;二次;一次;38、關于繼承中出現的二義性的描述中,是錯的。一個派生類的兩個基類中都有某個同名成員,

22、在派生類中對這個成員的訪 問可能出現二義性; 解決二義性的最常用的方法是對成員名的限定法; 在單繼承情況下,派生類中對基類成員的訪問也會出現二義性;一個派生類是從兩個基類派生出來的,而這兩個基類又有一個共同的基類,對該基類成員進行訪問時,也可能出現二義性;39、已知f1()是類A的公有成員函數,p是指向成員函數f1()的指針,采用 是正確的。 p=f1; p=A:f1; p=A:f1(); p=f1();40、關于動態聯編的下列描述中,是錯誤的。 動態聯編是以虛函數為基礎的; 動態聯編是在運行時確定所調用的函數代碼的;動態聯編調用函數操作是用指向對象的指針或對象引用;動態聯編是在編譯時確定操作

23、函數的;41、下面是面向對象程序設計的特點,而 不是的。#v1.0可編輯可修改多態性封裝性隱藏性繼承性42、關于成員函數特征的下述描述中,是錯誤的。 成員函數一定是內聯函數;成員函數可以重載; 成員函數可以設置參數的缺省值;成員函數可以是靜態的。43、關于delete運算符的下列描述中,是錯的。它必須用于new返回的指針;它也適用于空指針; 對一個指針可以使用多次該運算符; 指針名前只用一對方括號,不管所刪除數組的維數。44、設置虛基類的目的是 。 簡化程序; 消除二義性; 提高運行效率; 減少目標代碼;45、下列運算符中,運算符在C+”不能重載。:+new<=46、下列關于運算符重載的

24、描述中,是正確的。運算符重載可以改變運算數的個數; 運算符重載可以改變優先級; 運算符重載可以改變結合性;運算符重載不可以改變語法結構;47、如果一個類至少有一個純虛函數,那么就稱該類為 。抽象類虛基類派生類以上都不對48、對基類和派生類的關系描述中,是錯誤的。派生類是基類的具體化;派生類是基類的子集;派生類是基類定義的延續;派生類是基類的組合;49、已知:print() 函數是一個類的常成員函數,它無返回值,下列表示中, 是正確的。 void print( ) const const void print()1313v1.0可編輯可修改SO void const print() void p

25、rint(const)50、派生類的對象對它的基類成員中, 是可以訪問的。 公有繼承的公有成員; 公有繼承的私有成員;公有繼承的保護成員;私有繼承的公有成員。四、簡答題1、 什么叫做靜態成員函數它有何特點2、在繼承體制中,試分析基類中某成員函數是虛函數與不是虛函數有何不同3、試解釋純虛函數與函數體為空的虛函數的相似及不同之處4、為什么說C+”的運算符 守口是重載的運算符5、什么是動態聯編在什么情況下可以實現動態聯編#v1.0可編輯可修改6、拷貝初始化構造函數是一特殊的成員函數,在什么情況下系統會自動調用 它7、多繼承下,可能造成對基類中某個成員訪問的不唯一性,稱為對基類成員 訪問的二義性問題。

26、試舉例說明,多繼承時,在什么情況下會產生二義性8、如果在類模板的定義中有一個靜態數據成員,則在程序運行中會產生多少 個相應的靜態變量9、派生類的對象可以賦給基類對象,反過來行嗎為什么10、構造函數可以是虛函數嗎試說明1515v1.0可編輯可修改五、寫出下列程序的運行結果1、 #include "" class A public:A(int i=0) m=i; cout<<"Constructor called."<<m<<endl;void set(int i) m=i; void print( ) const cou

27、t<<m<<endl; A( ) cout<<"Destructor called."<<endl; private:int m; ;void fun(const A &c) (); void main() fun(5); Ans:Constructor5Destructor called.#v1.0可編輯可修改2、 #include ""class A public:A() a=0; b=0;cout<<"Default constructor called."&l

28、t;<endl;A(int i, int j) a=i; b=j;cout<<"Constructor: a="<<a<<" ,b="<<b<<endl;A( ) cout<<"Destructor called."<<endl; void set(int i, int j) a=i; b=j; void print() cout<v"a="vva<v" ,b="<<b<<

29、;endl; private:int a, b;;void main() A a3;for(int i=0; i<3; i+) ai.set(2*i+1,(i+1)*2);ai.print();Ans:Default constructor called.Default constructor called.Default constructor called.a=1 ,b=21717v1.0可編輯可修改a=3 ,b=4 a=5 ,b=6 Destructor called. Destructor called. Destructor called.3、 #include "&

30、quot;class B public: B( ) B(int i,int j) a=i, b=j; void printb();private: int a,b;class A public: A( ) A(int i, int j):c(i,j) void printa();private: B c;void B:printb() cout<<"a="<<a<<", b="<<b<<endl; void A:printa() ();void main() A ob(7,8);();Ans:

31、a=7, b=84、 #include ""class A public:A(int i,int j) x=i; y=j; friend int fun(A &a);private:int x, y;int fun(A &a) =*;return ;void main() A ob1(4,7),ob2(5,9);cout<<fun(ob1)<<","<<fun(ob2)<<endl; Ans: 28, 451919v1.0可編輯可修改5、 #include "" clas

32、s A public:A(int i, int j) a=i; b=j; void move(int i, int j) a+=i; b+=j; void disp() coutvv"("v<avv","vvbvv")"vvendl; private:int a, b;;class B: public A public:B(int i, int j, int k, int l):A(i,j), x(k), y(l) void disp( ) cout<vxvv","vvyvvendl; void fun

33、( ) move(3,5); private:int x, y;;void main() A e(1,2);();B d(3, 4, 5, 6);();二disp();();Ans:(1,2)(6,9)5,62020v1.0可編輯可修改6、 #include ""class A public:void seta(int x) a=x; void showa( ) cout<<a<<" " private:int a;class B public:void setb(int x) b=x; void showb( ) cout<

34、;<b<<" " private:int b;class C:public A,public B public:void setc(int x, int y, int z) c=z;seta(x);setb(y);void showc() showa();showb();cout<<c<<endl;private:int c;void main()2121v1.0可編輯可修改 C C;(1,2,3);();Ans: 1 2 37、 #includeclass J public:J(int i, int j) a=i*j; displ

35、ay( ); virtual void display() cout<< " J二display( ) calleda<<endl; protected:char a;class P1: public J public:P1(int i, int j): J(i, j) p=i+j; display( ) ; void display() cout<< " P1: display( ) called. ” <<p<<endl; private:int p;void main() P1 ob(14, 7); Ans:

36、J:display()P1二display()Press any key to continue2222v1.0可編輯可修改8、 #includeclass number public:number( ) count+; number( ) count- -; static int HMS( ) return count; private:static int count;int number二count=20;void main() number a1, a2, a3,a4;cout<<number二HMS( ) <<endl;a1.number();cout<

37、<number二HMS( )<<endl;Ans:24239、# include <>class A int a,b;public :A() a=b=0; A(int aa,int bb) a=aa; b=bb;cout <<a<<' '<<b<<endl;void main()A x,y(2,3),z(4,5);2 34 510、#include<>2424v1.0可編輯可修改class FOOpublic:FOO(int i)cout<<"Constructing

38、.n"pointer=new int;*pointer=i;FOO(const FOO& other)cout<<"Copy Constructing.n"pointer=new int;*pointer=*;FOO()cout<<"Destructingn"delete pointer;int get()return *pointer;private:int *pointer;void display(FOO obj)cout<<()<<"n"return;void

39、main()FOO obj1(15);FOO obj2=obj1;display(obj2);Constructing.Copy Constructing.Copy Constructing.15DestructingDestructingDestructing#include<>class Apublic:int n;);class B:public A;class C:public A;class D:public B,public Cint getn()return B二n; ;2626v1.0可編輯可修改void main()D d;二n=10;二n=20;cout<

40、<:n<<","<<二n<<endl;10,2012、#include <>class Aprivate:static int n;int X;public:A(int x=0) X=x; n+; A() n- ; static int GetNum() return n; void print();void A:print() cout << "n=" << n << ", X=" << X<< endl; int A:

41、n = 0;void main() A *p=new A(12);p->print();A a(34);();delete p;cout << "n=" << A:GetNum() << endl;n=1, X=12n=2, X=34n=1Press any key to continue13、#include<>class Sampleprivate:int i;static int count;public:Sample();void display();Sample二Sample()i=0;count+;void

42、Sample二display()coutvv"i="vvi+vv",count="v<countvvendl;int Sample二count=0;void main()Sample a,b;();();i=0,count=2i=0,count=2Press any key to continue2828v1.0可編輯可修改寫出下面程序的輸出結果。#include <>class Basel public:virtual void display。const;;void Base1:display() const cout <&l

43、t; "Base1:display()" << endl; class Base2: public Base1 public:void display。const;void Base2:display() const cout << "Base2:display()" << endl; class Derived: public Base2 public:void display() const;void Derived:display() const cout << "Derived:displ

44、ay()" << endl;void fun(Base1 *ptr) ptr->display();void main() Base1 base1;Base2 base2;Derived derived;fun(&base1);fun(&base2);fun(&derived);運行結果:Base1:display()Base2:display()Derived:display()15.用一句話概括下面程序的功能,并在“ ”后加上注釋。#include""#include""void main()cha

45、r ch;ifstream myin("file_from");if(!myin) /cout<<"cannot open file: file_from"ofstream myout("file_to");if(!myout)cout<<"cannot open file: file_to"while(ch) (ch); ();();功能:功能是:將文件file_from的內容復制到文件file_to 中。(3分)注釋:判斷是否可以打開文件,myin=0為不可以,myin=1為可以。(1分

46、)注釋:向文件讀、寫數據。(1分)3030v1.0可編輯可修改class Basepublic :virtual void fn( int x)cout<<"In Base class,int x="<<x<<endl;;class SubClass: public Basepublic :virtual void fn( int f)cout<<"In SubClass,int f="<<f<<endl;void test(Base &t);void main()Base

47、b;SubClass s;(10);3131v1.0可編輯可修改5cout<<"nCalling test(b):n"test(b);cout<<"nCalling test(s):n" test(s);Ans:In Base class,int x=10In SubClass,int f=5Calling test(b):In Base class,int x=5Calling test(s):In SubClass,int f=5Press any key to continue3232v1.0可編輯可修改六、簡答題1什么叫函數重載重載的函數要滿足什么條件僅函數的返回值類型不同可以進行函數重載嗎2簡述面向對象技術的四個基本特征。3簡述面向對象技術支持的四種多態性。4試解釋純虛函數與函數體為空的虛函數的相似及不同之處。5.若派生類與其基類中有同名成員,試圖通過

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論