




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、語法擴充1.1 選擇題在C+好用(D )能夠實現將參數值帶回。a)數組b)指針c)引用 d)上述ABC都可考慮函數原型void test(int a,int b=7,char *ch="*"), 下面的函數調用中,屬于不合法調用的是: ( C )A)test(5) B)test(5,8)C)test(6,"#")D)test(0,0,"*") ;已知:int m=10 ;下列表示引用的方法中,正確的是: (C )A)int &Z ; B)int &t=10 ; C)int &X=m ; D)float &
2、;f=&m ;下列不是函數重載所要求的條件是:( D )A)函數名相同B)參數個數不同C)參數類型不同D)函數返回值類型不同在C+中執行以下4條語句后輸出rad值為:(C )static int hot=200 ;int &rad=hot ;hot=hot+100 ;cout<<rad<<endl ;A) 0 B) 100 C) 300D) 200系統在調用重載函數時,不能作為確定哪個重載函數被調用的依據是:( D )A)參數個數B)參數類型C)函數名稱D)函數的返回值類型對C+語言和C語言的兼容性,描述正確的是:(A )A)C+ 兼容 C B)C+ 部
3、分兼容C C)C+ 不兼容 C D)C 兼容 C+在C+中使用流進行輸入輸出,其中用于屏幕輸出的對象是:(C )A)cerr B)cin C)cout D)cfile對使用關鍵字new 所開辟的動態存儲空間,釋放時必須使用(C )A)free B)create C)delete D)realse在函數調用時,如某一默認參數要指明一個特定值,則有(A )A)其之前所有參數都必須賦值B)其之后所有參數都必須賦值C)其前、后所有參數都必須賦值D)其前、后所有參數都不必賦值下列哪個類型函數不適合聲明為內聯函數(A )A)函數體語句較多B)函數體語句較少C)函數執行時間較短D)函數執行時間過長int F
4、unc(int , int);不可與下列哪個函數構成重載( B )A)int Func(int , int, int);B)double Func(int , int);C)double Func(double , double); D)double Func(int , double);下面的哪個保留字不能作為函數的返回類型(C )A)void B)int C)new D)long一個函數功能不太復雜,但要求被頻繁調用,選用( A )。A.內聯函數 B.重載函數C.遞歸函數D.嵌套函數已知函數 f 的原型為:void f (int&a,char*b);變量 s,t 的定義是:int
5、s; char t ="ABCD"把s和t分別作為第一參數和第二參數來調用函數f,正確的調用語句是( C )A f(&s,&t) ; B f(&s,t) ; C f(s,t) ; D f(s,&t);若定義 cin>>str;當輸入Microsoft Visual Studio 6.0 !所得結果是 str= ( B)。A、 Microsoft Visual Studio 6.0 !B、MicrosoftC、 Microsoft VisualD、 Microsoft Visual Studio 6.0.函數模板(C)。A、代表某一
6、具體函數B、與模板函數是同一個函數C、與某一個具體的數據類型連用D、是模板函數實例化的結果在C+中,關于下列設置參數默認值的描述中,正確的是( C)A、不允許設置參數的默認值B、設置參數默認值只能在定義函數時設置C、設置參數默認值時,應該是先設置右邊的再設置左邊的D、設置參數默認值時,應該全部參數都設置下列表示引用的方法中,(A)是正確的。已知:k=1000;A、int &x=k;B、char &y;C、int &z=1000;D、float &t=&k;有如下模板定義:template <class T>T fun(T x,T y)retu
7、rn x*x+y*y ; 在下列對fun的調用中,錯誤的是:(C )A)fun(2,8)B)fun(2.0,8.2)C)fun(2.3,8) D)fun ( 2','8')通常情況下,函數模板中的類型參數個數不能是(A )A)0個 B)1個 C)2個 D)3個1.2 填空題1、假定有如下定義:int x;,若要將整型變量 y定義為變量x的引用,則應使用的定義語句是 int &y=x; 。具有相同函數名但具有不同參數表的函數稱為重載函數。'2、在進行函數調用時,將把參數的值傳遞給值參數,把參數的 強址_傳遞給引用參數。3、執行完下列三條語句后,指針變量c指
8、向_b 。Int a,b,*c=&a;int *&p=c;p=&b;4、 假設有如下函數定義:void Fun(int x,int y=100);則語旬Fun(5)語句Fun(5 , 100)等價。5、在一個C+程序中,每個變量都必須遵循先定義后使用 的原則。6、下面是一個求數組元素之和的程序。主程序中定義并初始化了一個數組,然后計算該數組各元素之和,并輸出結果。函數TotalSum計算數組元素之和。請完成下列程序。#include <iostream.h>int Totalsum(int array,int len) ; void main() int a
9、5=2,3,6,8,10;_int Total ;Total =Totalsum(a,5);cout<<"Sum of array:"<<Total<<endl; int Totalsum(int array,int len) .int sum =0;for(int I=0;<len;I+)sum += arrayI; return sum;7、下面的函數Fun未使用中間變量實現了對兩個數的交換,請完成下列函數的定義。Void Fun (int &x,int &y) x+ = y;y =_x-y_ ; x = x -
10、 y;8、定義一個函數時,若只允許函數體訪問形參的值而不允許修改它的值,則應把該形參聲明為常量,即在該形參聲明的前面加上const關鍵字進行修飾。9、在一個函數的定義或聲明前加上關鍵字.inline.時,該函數就聲明為內聯函數。1.3 簡答題A、 .內聯函數的含義在函數前加上關鍵字inline說明了一個內聯函數,這使一個函數在程序行里進行代碼擴展而不被調用。這樣的好處是減少了函數調用的開銷,產生較快的執行速度。但是由于重復編碼會產生較長代碼,所以內聯函數通常都非常小。如果一個函數在類說明中定義,則將自動轉換成內聯函數而無需用inline說明。B、 .函數重載的含義在同一作用域范圍內,相同的函數
11、名通過不同的參數類型或參數個數可以定義幾個函 數,編譯時編譯器能夠識別實參的個數和類型來決定該調用哪個具體函數。需要注意的是, 如果兩個函數僅僅返回類型不同,則編譯時將會出錯,因為返回類型不足以提供足夠的信息以使編譯程序判斷該使用哪個函數。所以函數重載時必須是參數類型或者數量不同。C、引用與指針的區別D 、內聯函數使用上的限制E、定義帶默認參數值函數的規則F、指針與常量的關系1.4 程序閱讀題1)寫出下列程序的運行結果。#include <iostream.h>void main()int x;int &p=x;x=10;p=x+10;cout<<x<&l
12、t;","<<p<<endl;結果: 20,202)寫出下列程序的運行結果。#include <iostream.h>int f(int a)return +a;int g(int &a)return +a;void main()int m=0,n=0;m+=f(g(m);n+=f(f(n);cout<<"m="<<m<<endl;cout<<"n="<<n<<endl;結果:m=3n=23) 寫出下列程序的運行結果。#
13、include <iostream.h>void Fun()int num=20;cout<<"The Fun's num is"<<num<<endl;void main()int num=10;cout<<"The main's num is "<<num<<endl;Fun();int num=30;cout<<"The Field's num is "<<num<<endl;cout&
14、lt;<"The main's num is "<<num<<endl;結果:The main's num is 10The Fun's num is20The Field's num is 30The main's num is 10類和對象2.1 選擇題下列的各類函數中,不是類的成員函數。( C )A)構造函數B)析構函數C)友元函數D)拷貝初始化構造函數作用域運算符“: : ”的功能是: ( B )A)標識作用域的級別的B)指出作用域的范圍的C)給定作用域的大小的D)標識成員是屬于哪個類的已知: p
15、rint() 函數是一個類的常成員函數,它無返回值,下列表示中,是正確的。( A )A)void print()const ; B)const void print() ;C)void const print() : D)void print(const) ;在類定義的外部,可以被訪問的成員有(C )A)所有類成員B)private的類成員C)public 的類成員D)public 或 private 的類成員關于類和對象不正確的說法是:( C )A)類是一種類型,它封裝了數據和操作B)對象是類的實例C) 一個類的對象只有一個D) 一個對象必屬于某個類在 C+ 中實現封裝是借助于( B )A)
16、枚舉 B)類 C)數組 D)函數定義析構函數時,應該注意:( C )A)其名與類名完全相同B)返回類型是void類型C)無形參,也不可重載D)函數體中必須有 delete語句類clase CC1的說明如下,錯誤的語句是:(A )clase CC1int a=2 ;/(A)CC1();/(B)public:CC1(int val);/(C)CC1():/(D);類的指針成員的初始化是通過函數完成的,這個函數通常是:(B )A)析構函數 B)構造函數C)其它成員函數D)友元函數關于構造函數的說法,不正確的是:(A )A)沒有定義構造函數時,系統將不會調用它B)其名與類名完全相同C)它在對象被創建時
17、由系統自動調用D)沒有返回值通常拷貝構造函數的參數是:(C )A)對象名B)對象的成員名C)對象的引用名D)對象的指針名關于成員函數特征的描述中,錯誤的是:(A )A)成員函數一定是內聯函數B)成員函數可以重載C)成員函數可以設置參數的默認值D)成員函數可以是靜態的下列關于構造函數的描述中,錯誤的是:(D )A)構造函數可以設置默認參數;B)構造函數在定義類對象時自動執行C)構造函數可以是內聯函數;D)構造函數不可以重載有如下類聲明"class Aint x ;",則A類的成員x是:(B )A)公有數據成員 B)私有數據成員C)公有成員函數D)私有成員函數類TM和類TN是兩
18、個獨立的類,那么類TM中哪種形式的數據成員一定是不允許的:(C )A)TM * a B)TN & a C)TM a D)TN a ;以下關于this指針的敘述中正確的是:(D )A)任何與類相關白函數都有this指針;B)類的成員函數都有this指針;C)類的友員函數都有this指針;D)類的非靜態成員函數才有this指針;.關于類模板的說法正確的是:(B )A)類模板的主要作用是生成抽象類B)類模板實例化時,編譯器將根據給出的模板實參生成一個類C)在類模板中的數據成員具有同樣類型D)類模板中的成員函數沒有返回值.以下關鍵字不能用來聲明類的訪問權限的是:(C )A)public B)p
19、rivate C)static D)protected類的私有成員可在何處訪問(D )A)通過子類的對象訪問B)本類及子類的成員函數中C)通過該類對象訪問D)本類的成員函數中.如果沒有為一個類定義任何構造函數的情況下,下列描述正確的是: (A )A)編譯器總是自動創建一個不帶參數的構造函數B)這個類沒有構造函數C)這個類不需要構造函數D)該類不能通過編譯一個類可包含析構函數的個數是:(B)A)0 個 B)1 個 C)0 個或 1 個 D)0 個或多個一個類可包含構造函數的個數是:(D)A)0 個 B)0 個或 1 個 C)0 個或多個D)1 個或多個 this 指針存在的目的是:(B )A)保
20、證基類公有成員在子類中可以被訪問B)保證每個對象擁有自己的數據成員,但共享處理這些數據成員的代碼C)保證基類保護成員在子類中可以被訪問D)保證基類私有成員在子類中可以被訪問下列關于類的權限的描述錯誤的是:(A )A)類本身的成員函數只能訪問自身的私有成員B)類的對象只能訪問該類的公有成員C)普通函數不能直接訪問類的公有成員,必須通過對象訪問D) 一個類可以將另一個類的對象作為成員設類A將其它類對象作為成員,則建立A類對象時,下列描述正確的是:(B ) A)A類構造函數先執行B)成員構造函數先執行C)兩者并行執行D)不能確定.假定有類AB,有相應的構造函數定義,能正確執行“ AB a(4),b(
21、5), c3, *p2=&a,&b ; ”語句,請問執行完此語句后共調用該類構造函數的次數為( C )A)3 B)4 C)5 D)6拷貝構造函數的作用是(C ) 。A. 進行數據類型的轉換B. 用對象調用成員函數C. 用對象初始化對象D. 用一般類型的數據初始化對象下列靜態數據成員的特性中,錯誤的是(D ) 。A.靜態數據成員的聲明以關鍵字static開頭B. 靜態數據成員必須在文件作用域內初始化C. 引導數據成員時,要在靜態數據成員前加(類名)和作用域運算符D. 靜態數據成員不是類所有對象共享的通過指針訪問類對象成員的方法是(D )。A. :B. ; C. . D. ->
22、;靜態成員函數沒有(B )。A.返回值 B. this指針 C.指針參數 D.返回類型在下列關鍵字中,用于說明類中公有成員的是( A )。A. public; B. private; C. protected; D. friend不是構造函數的特征( D )。A.構造函數的函數名與類名相同;B.構造函數可以重載;C.構造函數可以設置缺省參數;D.構造函數必須指定類型說明。是析構函數的特征(A )。A . 一個類中只能定義一個析構函數;B.析構函數名與類名不同;C.析構函數的定義只能在類體內;D.析構函數可以有一個或多個參數。關于成員函數特征的下述描述中,( A )是錯誤的。A.成員函數一定是內
23、聯函數;B.成員函數可以重載;C.成員函數可以設置參數的缺省值;D.成員函數可以是靜態的。下述靜態數據成員的特性中,( D )是錯誤的。A.說明靜態數據成員時前邊要加修飾符static;B.靜態數據成員要在類體外進行初始化;C.引用靜態數據成員時,要在靜態數據成員名前加類名和作用域運算符;D.靜態數據成員不是所有對象所共用的。2.2填空題1、在撤銷類白對象時,c+程序將自動調用該對象的 析構 函數。2、類中的構造函數是一個特殊的成員函數,它由類的對象 自動 調用,它的作用是_為對象分配內存,數據成員初始化_ 。3、 對類中的成員函數和屬性的訪問是通過public 、protected 和pri
24、vate 這3個關鍵字來控制的。4、 _delete_運算符刪除new運算符所動態分配的內存空間。5、假定用戶沒有Z一個名為MyClass的類定義析構函數,則系統為其定義的默認析構函數形式為 MyClass() 。6、類中構造函數有 一個或多個,析構函數有丁 個。7、類是對具有共同屬性和行為的一類事物的抽象描述,共同屬性被描述為類中的一數據成員 ,共同行為被描述為類中的成員函數。8、 若要把類FriendClass定義為類 MyClass的友元類,則應在類 MyClass的定義中加入語句 _friendclass FriendClass; 。9、在結構定義中,數據和成員函數默認權限是_pubj
25、j。在類定義中,數據和成員函數默認權限是 private 。10、在下面程序的橫線處填上適當的語句,使類型該程序執行結果為10。#include <iostream.h>class MyClasspub1ic:MyClass ( int a ) _x = a; 為 x 置值int GetNum() return x; / 取 x 值private:int x; void main() Myclass my(10);Cout<<my.GetNum()<<end;11、完成下面的類定義。Class MyClass public:MyClass()x=0;frie
26、nd int GetNum(MyClass my);private: int x; int GetNum(MyClass my)return my.x;12、 Qew 運算符對指定類型對象動態分配內存并返回該類型的.指針。13、若要把函數 void FriendFunction()定義為類 MyClass的友元函數,則應在類 MyClass的定 義中加入語句 friend void FriendFunction();。14、類的具體表現是通過定義對象 來操作的。15、在定義類白對象時,C+程序將自動調用該對象的 構造函數初始化對象自身。16、一般情況下,按照面向對象的要求,把類中的數據成員(屬
27、性)定義為private 權限,而把成員函數(方法)定義為public 權限。17、在類中定義和實現的函數稱為內聯函數 。18、非成員函數應聲明為類的友元函數 才能訪問這個類的private成員。2.3 簡答題A、類的含義B、構造函數的特點C、拷貝構造函數的調用D、析構函數的定義及其特點E、靜態成員的分類及各自的特點2.4 程序閱讀題1)寫出下列程序的運行結果。#include <iostream.h> class MyClass char ch;public:MyClass();MyClass(char character);void Print();MyClass();MyCl
28、ass:MyClass()cout<<"This is a constructor!"<<endl; ch='a'MyClass:MyClass(char character)cout<<"This is a constructor!"<<endl; ch=character;void MyClass:Print()cout<<"The value of ch is "<<ch<<endl;MyClass:MyClass()cout&l
29、t;<"This is a destructor!"<<endl;void main()MyClass first,second('b');first.Print();second.Print();運行結果:This is a constructor!This is a constructor!The value of ch is aThe value of ch is bThis is a destructor!This is a destructor!2)寫出下列程序的運行結果#include <iostream.h> cl
30、ass MyClasspublic:MyClass();void Print();MyClass();private:int I;static int j;int MyClass:j=0;MyClass:MyClass()cout<<"This is constructor!"<<endl;j+=10;void MyClass:Print()cout<<"The value of j is" <<J<<endl;MyClass:MyClass()cout<<"This is
31、 a destructor!"<<endl;void main()MyClass first,second;first.Print();second.Print();This is constructor!This is constructor!The value of j is20The value of j is20This is a destructor!This is a destructor!繼承與派生3.1選擇題.在c+好,類與類之間的繼承關系具有(C )A)自反性 B)對稱性 C)傳遞性 D)反對稱性.在公有繼承的情況下,基類的成員(私有的除外)在派生類中的
32、訪問權限(B )A)受限制B)保持不變C)受保護D)不受保護.按解釋中的要求在下列程序劃線處填入的正確語句是:(C )#include <iostream.h>class Basepublic:void fun()cout<<"Base:fun"<<endl ; ;class Derived:public Basepublic:void fun()/在此空格處調用基類的函數fun()cout<<"Derived:fun"<<endl ; ;A)fun() ; B)Base.fun() ; C)B
33、ase:fun() ; D)Base->fun();.在保護繼承的情況下,基類的成員(私有的除外)在派生類中的訪問權限(C )A)受限制B)保持不變C)受保護D)不受保護.下面描述中,表達錯誤的是:(B )A)公有繼承時,基類中的public成員在派生類中仍是public的B)公有繼承時,基類中的private成員在派生類中仍是private的C)公有繼承時,基類中的protected成員在派生類中仍是protected的D)私有繼承時,基類中的public成員在派生類中是private的A)class virtual B: public A B)class B: virtual pub
34、lic AC)class B: public A virtualD)virtual class B: public AC)提高運行效率D)減少目標代碼D).C+設置虛基類的目的是(A )A)消除二義性B)簡化程序class Xint a;public:X(int x=0)a=x;class Y:public Xint b;public :Y(int x=0,int y=0):X(y) b=x;下列語句組中出現語法錯誤的是(A. X *pa=new Y(1,2);B.X a1=Y(1,3);C.Y b1(2,3); X &a3=b1;D.X a4(10);Y b2=a4;class Ba
35、se public: int i;Base(int t) : i ( t ) ;class Derived: protected Base Base b;int j;public:Derived (int t);在構造函數Derived 的下列定義中,正確的是(B )A. Derived : :Derived(intt) : b(t), j(t) B. Derived : :Derived(intt) : b(t), Base(t),j(t) C. Derived : : Derived (int t) : Base(t), j(t) D. Derived : : Derived (int t
36、) : i(t), b(t), j(t) 在哪種派生方式中,派生類可以訪問基類中的protected 成員( B )A)public 和 private B)public 、 protected 和 privateC)protected 和 private D) 僅 protected在 C+ 中,類與類之間的繼承關系具有(C )A) 自反性B) 對稱性C) 傳遞性D) 反對稱性下列關于類的繼承描述中,( A )是錯誤的A) 派生類可以訪問基類的所有數據成員,也能調用基類的所有成員函數B) 派生類也是基類,但基類不一定具有派生類的全部屬性和方法C) 繼承描述類的層次關系,派生類可以具有與基類相
37、同的屬性和方法D) 一個基類可以有多個派生類,一個派生類可以有多個基類.當一個派生類僅有protected 繼承一個基類時,基類中的所有公有成員成為派生類的(C)A) public 成員B) private 成員C) protected 成員D) 友元當一個派生類私有繼承一個基類時,基類中的所有公有成員和保護成員成為派生類的( B )A) public 成員B) private 成員C) protected 成員 D) 友元不論派生類以何種方法繼承基類,都不能使用基類的(B )A) public 成員B) private 成員C) protected 成員D) public 成員和 prote
38、cted 成員在創建派生類對象時,構造函數的執行順序是(D )A) 對象成員構造函數、基類構造函數、派生類本身的構造函數B) 派生類本身的構造函數、基類構造函數、對象成員構造函數C) 基類構造函數、派生類本身的構造函數、對象成員構造函數D) 基類構造函數、對象成員構造函數、派生類本身的構造函數下列虛基類的聲明中,正確的是(D ) 。A)class virtual B:public A B)virtual class B:public A C)class B:public A virtualD)class B:virtual public A A )。A) 基類的 protected 成員在派生
39、類中仍然是protected 的B)基類的protected成員在public派生類中仍然是 protected的C)基類的protected成員在private派生類中是 private的D)基類的protected成員不能被派生類的對象訪問下列說法中錯誤的是(A ) 。A) 保護繼承時基類中的public 成員在派生類中仍是public 的B)公有繼承時基類中的private成員在派生類中仍是private的C)私有繼承時基類中的public成員在派生類中是private的D)保護繼承時基類中的public成員在派生類中是protected的關于多繼承二義性的描述中,錯誤的是(B ) 。A
40、) 一個派生類的兩個基類中都有某個同名成員,在派生類中對這個成員的訪問可能出現二義性B)解決二義性的最常用的方法是對成員名的限定法C)基類和派生類中同時出現的同名函數,也存在二義性問題D)一個派生類是從兩個基類派生出來的,而這兩個基類又有一個共同的基類,對該基類成員進行訪問時,可能出現二義性下面敘述錯誤的是(C )。A)派生類可以使用 private派生B)對基類成員的訪問必須是無二義性的C)基類成員的訪問能力在派生類中維持不變D)賦值兼容規則也適用于多繼承的組合派生類的構造函數的成員初始化列表中,不能包含( C )。A)基類的構造函數B)派生類中子對象的初始化C)基類中子對象的初始化D)派生
41、類中一般數據成員的初始化下面(B )的敘述不符合賦值兼容規則。A)派生類的對象可以賦值給基類的對象B)基類的對象可以賦值給派生類的對象C)派生類的對象可以初始化基類的引用D)派生類的對象的地址可以賦值給指向基類的指針.下列虛基類的聲明中,正確的是:(B )A)class virtual B: public A B)class B: virtual public AC)class B: public A virtual D)virtual class B: public A.C+設置虛基類的目的是(A )A)消除二義性B)簡化程序C)提高運行效率D)減少目標代碼3.2填空題1、垂直訪問時,保護成
42、員的訪問控制權限與公立成員相同。2、利用繼承能夠實現代碼復用。這種實現縮短了程序的開發時間,促使開發人員復用 已經測試和調試好的高質量軟件。3、派生類對基類的繼承有三種方式:public_、 protected 和 private 。4、多繼承情況下,派生類的構造函數的執行順序取決于定義 派生類時所指定的各基類的順序。5、C+提供的_多繼承機制允許一個派生類繼承多個基類,即使這些基類是相互無關的。6、派生類可以調用其等義中不具備的數據和操作。7、對基類數據成員的初始化必須在派生類構造函數中的初始化列表處執行。8、如果類Alpha繼承了類Beta,則類Alpha稱為派生類,類Beta稱為基類。9
43、、己知下面的程序框架,按注釋中的提示補充細節。#include <iostream.h>class planetprotected:double distance;行星距太陽的距離 int revolve;/行星的公轉周期 public: planet(double d,int r) distance=d;revolve=r; ; class earth:public planetdouble circumference; 地球繞太陽公轉的軌道周長 public:/定義構造函數 earth(double d,int r),并計算地球繞太陽公轉的軌道周長。 假定:circumnfer
44、ence=2*d*3.1416earth(double d,int r): planet (d, r) circumnference=2*d*3.1416;/定義show()函數顯示所有信息void show() cout<< "distance is ”<< distance<<" miles,revokeis”<<revolve<< "days"<<endl; cou<< " circumference is << circumference&l
45、t;<endl; ;void main() earth ob(9300000,365);ob.show();10、設置虛基類的目的是為了消除二義性,可通過_virtual標識虛基類。11、若多繼承時,多個基類中擁有一個同名的成員,則 丕能 用調整訪問權限確定對該 成員的訪問。12、根據基類的定義和測試程序,完成下面派生類的定義。 Class Point public: Point(int I=0 , int j=0)X=I;Y=j; void Move(int xOff,int yOff)X+=xOff;Y+=yOff; int GetX()return X; int GetY()ret
46、urn Y; private: int X,Y;class Rectangle :private Point public: Rectangle(int x,int y,int w,int h)_:Point(x,y) W = w ; H = h ;_ void Move(int xOff,int yOff)_ Point:Move(xOff, yOff); int GetX()return Point:GetX。;int GetY()return Point:GetY(); int GetW()return W; int GetH()return H; private:int W,H;#in
47、clude <iostream.h>#include <math.h>void main() Rectangle rect(1,2,3,4);rect.Move(5,6);cout<< " The data of rect(X,YW,H):( “<<rect.GetX()<< ", ” <<rect.GetY()<< ”, ”<<rect.GetW()< < ", ” <<rect.GetH()<< ")" <
48、;<endl;13、多繼承可以視為是 單繼承的擴展。14、在劃線處填上適當的語句,完成下列程序。#include <math.h>class Pointpublic:point(double a,double b,double c)_X =a; Y=b; Z =c;_ double Getx()return X;double Gety()return Y;double Getz()return Z; private:一double X. Y;protected: double Z;class Line :public Pointpublic:Line(double a ,do
49、uble b,double c,double d) :Point(a,b,c) K = d; void show() cout<<Getx()<<endl;cout<<Gety()<<“ ” <<.<<<endl;cout<<Getz()<<" "<<eZdl;cout<<K<<endl;private:double k;void main()Line obj(1.2,3.4,5.6,7.8);obj.show();15、 類繼承中,缺省
50、的繼承方式是 private 。16、當用protected繼承從基類派生一個類時,基類的public成員成為派生類的protected成員,protected成員成為派生類的protected 成員。18、公有派生類的對象可作為 堇類的對象處理。19、指向基類的對象的指針變量也可以指向公有派生類的對象。20、類之間的“有“關系代表組合 ,”是“關系代表 繼承。3.3 簡答題A、派生類的定義及其特點B、單繼承和多繼承的概念及其關系C、繼承方式的種類及其各自的特點D、在繼承中構造函數和析構函數的調用規則F、賦值兼容原則G、類模板和模板類的含義及其關系3.4 讀程序題1、寫出下列程序的運行結果。#
51、include <iostream.h>class Basepublic:void Who()cout<<"class Base"<<endl;class Derived1:public Basepublic:void Who()cout<<"class Derived1"<<endl;class Derived2:public Basepublic:void Who()cout<<"class Derived2"<<endl;void main()B
52、ase obj1,*p;Derived1 obj2;Derived2 obj3;p=&obj1;p->Who();p=&obj2;p->Who();p=&obj3;p->Who();obj2.Who();obj3.Who();答案:class Baseclass Baseclass Baseclass Derived1class Derived22、 寫出下列程序的運行結果。#include <iostream.h>class instrumentpublic:void display() constcout<<"in
53、stument:display."<<endl; ;class piano:public instrumentpublic:void display() constcout<<"piano:display."<<endl;class guitar:public instrumentpublic:void display() constcout<<"guitar:display."<<endl;void tone(instrument & I)1 .display();void
54、main()guitar guitar1;tone(guitar1);piano piano1;tone(piano1); 答案instument:display.instument:display.3、 寫出下列程序的運行結果。#include <iostream.h>class Apublic:A(char i)cout<<"A's cons."<<i<<endl; A()cout<<"A's des."<<endl;class B:virtual public
55、Apublic:B(char i,char j):A(i)b = j; cout<<"B's cons."<<j<<endl; B()cout<<"B's des."<<b<<endl;private:char b;class C:virtual public Apublic:C(char i,char j):A(i) cout<<"C's cons."<<j<<endl;C()cout<<&
56、quot;C's des."<<endl;class D:public B,public Cpublic:D(char i,char j,char k,char s,char m,char n) :C(k,s),B(i,j),A(i),aa(m)cout<<"D's cons."<<endl;D()cout<<"D's des."<<endl;private:A aa;void main()D obj('a','b','c
57、','d','e','f'); 答案 :A's cons.a B's cons.b C's cons.d A's cons.e D's cons. D's des.A's des.C's des. B's des. A's des.類的多態性4.1 選擇題. 實現運行時的多態性采用( D )A)重載函數B)構造函數C)析構函數D)虛函數. 在派生類中重新定義虛函數時,必須在下列哪方面與基類保持一致。( A )A)參數類型B)參數名字C)操作內容D)賦值. 當一個類的某個函數被說明為virtual 時,在該類的所有派生類中的同原型函數 (A )A)都是虛函數 B)只有被重新說明時才是虛函數C)都不是虛函數D)只有被重新說明為virtual時才是虛函數. 通過下述哪一項調用虛函數時,采用動態聯編。( A )A)對象指針B)對象名 C)成員名限定D)派生類名A) 虛函數是沒有實現的函數C) 抽象類是沒有純虛函數的類 若一個類中含有純虛函數,則該類稱為(B D ) (兩個答案)B) 純虛函
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 踝泵運動護理宣教
- 中醫兒童保健專科建設專家共識解讀
- 廣東省深圳市光明區2023~2024學年高三數學下學期5月模擬考試含答案
- 吉林省長春興華高中2025屆高三下學期第五次模擬考試數學試題含解析
- 四川大學錦江學院《教學劇目排演》2023-2024學年第一學期期末試卷
- 江蘇省鹽城市郭猛實驗學校2025屆初三下學期教學質量檢測試題語文試題含解析
- 遼寧商貿職業學院《風景園林藝術原理》2023-2024學年第二學期期末試卷
- 漯河食品職業學院《游釣漁業學》2023-2024學年第一學期期末試卷
- 山東省濱州市沾化縣2025屆八校聯考中考模擬數學試卷含解析
- 山東省郯城縣美澳學校2024-2025學年(高三)物理試題5月月考試題含解析
- 五年(2020-2024)高考語文真題分類匯編專題02 文言文閱讀(原卷版)
- 外賣站承攬合同范例
- CNAS-CL01:2018 培訓教材:檢測和校準實驗室能力認可準則
- 2024年工程預決算管理制度范文(二篇)
- 訂單管理制度
- 臨床常見刺激性藥物的簡介
- 2022mysql運維操作手冊
- 2022電渦流位移傳感器技術規范
- 2024至2030年全球及中國無創血糖監測行業深度研究報告
- 行業產教融合共同體共建協議書
- 中國園林鑒賞-個園
評論
0/150
提交評論