青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 12,  comments - 21,  trackbacks - 0

C/C++測試題

面向?qū)ο?/span>

選擇題:

C++概述

1、以下C++新增的關(guān)鍵字為  D 

A break

B continue

C stuct

D inline

2、面向?qū)ο蟪绦蛟O(shè)計將數(shù)據(jù)與__A___放在一起,作為相互依存、不可分割的整體來處理。

A對數(shù)據(jù)的操作           B信息       C數(shù)據(jù)隱藏                 D數(shù)據(jù)抽象

 

3、面向?qū)ο蟪绦蛟O(shè)計優(yōu)于傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計,其優(yōu)越性主要表現(xiàn)在,它有希望解決軟件工程的兩個主要問題:軟件復(fù)雜性和__A____

A 軟件生產(chǎn)率的提高  B 精化已有的代碼   C 共享代碼         D 編寫可重用代碼

 

4、面向?qū)ο笙到y(tǒng)的____B__是一種信息隱藏技術(shù),目的在于將對象的使用者與設(shè)計者分開,使用者不必知道對象行為實現(xiàn)的細(xì)節(jié),只需用設(shè)計者提供的協(xié)議命令對象去做即可。

A多態(tài)性                            B封裝性       C繼承性                        D復(fù)用性

 

5___A___不是面向?qū)ο笙到y(tǒng)所包含的要素

A重載                         B對象        C                          D繼承

 

6、關(guān)于C++C語言的關(guān)系的描述中,____D__是錯誤的。

A  C語言是C++的一個子集          B  C++C語言是兼容的

C  C++C語言進(jìn)行了一些改進(jìn)      D  C++C語言都是面向?qū)ο蟮?/span>

 

7、下面關(guān)于對象概念的表述中,___A___是錯誤的。

A 對象就是C語言中的結(jié)構(gòu)變量

B 對象代表著正在創(chuàng)建的系統(tǒng)中的一個實體

C 對象是一個狀態(tài)和操作(或方法)的封裝體

D 對象之間的信息傳遞是通過信息進(jìn)行的

 

8、下面關(guān)于類概念的表述中,_____D_是錯誤的。

類是抽象數(shù)據(jù)類型的實現(xiàn)        B 類是具有共同行為的若干對象的統(tǒng)一描述體

類是創(chuàng)建對象的樣板            D 類就是C語言中的結(jié)構(gòu)類型

 

9、下列關(guān)于C++類的描述中錯誤的是___C___

類與類之間可以通過一些手段進(jìn)行通信和聯(lián)絡(luò)

類用于描述事物的屬性和對事物的操作

類與類之間必須是平等關(guān)系,而不能組成層次關(guān)系

類與類之間可以通過封裝而具有明確的獨立性

 

10、下列關(guān)鍵字中,____B__既在C語言中使用,又在C++語言中使用

A  inline   B  break   C  private D public

 

11C++C語言做了很多改進(jìn)。下列描述中___D___使得C語言發(fā)生了質(zhì)變,即從面向過程變成了面向?qū)ο?/span>

A增加了一些新的運算符      B允許函數(shù)重載,并允許設(shè)置默認(rèn)參數(shù)

C規(guī)定函數(shù)說明必須用原型    D引進(jìn)了類和對象的概念

 

12、下列C++標(biāo)點符號中表示行注釋開始的是___C___

A   #   B     C   //    D  }

 

13、下列關(guān)于C++C語言關(guān)系的描述中錯誤的是__C____

A   C++C語言的超集                        B   C++C語言進(jìn)行了擴(kuò)充

C   C++|C語言都是面向?qū)ο蟮某绦蛟O(shè)計語言    D   C++包含C語言的全部語法

 

14、下列正確的選項是________A______

繼承是創(chuàng)建一個具有另一個類的屬性和行為的新類的能力

B  C語言支持面向?qū)ο蟮某绦蛟O(shè)計

空白符是一種可以被編譯的符號

標(biāo)識符不宜太長,一般設(shè)定為16個字符

 

15、下列關(guān)于多態(tài)說法錯誤的是__B_______

不同的對象調(diào)用相同名稱的函數(shù),并可導(dǎo)致完全不同的行為的現(xiàn)象稱為多態(tài)性

B C++語言中多態(tài)性通過使用封裝技術(shù)來支持

多態(tài)是面向?qū)ο蟪绦蛟O(shè)計的一個重要機(jī)制

多態(tài)是人類思維方式的一種模擬

 

 

類和對象

16、以下類的說明,請指出錯誤的地方_____A___

Class CSample

{

       int a = 2;               (A)

       CSample();       (B)

       Public:

       CSample(int val); (C)

       ~CSample();          (D)

}

 

17、有關(guān)類的說法不正確的是____D____

類是一種用戶自定義的數(shù)據(jù)類型

只有類中的成員函數(shù)才能存取類中的私有數(shù)據(jù)

在類中,如果不做特別說明,所有的數(shù)據(jù)類型均為私有類型

在類中,如果不做特別說明,所有的成員函數(shù)均為公有類型

 

18、有關(guān)類和對象的說法下列不正確的有____C____

A 對象是類的一個實例           B 任何一個對象只能屬于一個具體的類

C 一個類只能有一個對象         D 類與對象的關(guān)系和數(shù)據(jù)類型和變量的關(guān)系

 

19、關(guān)于類和對象,以下敘述正確的是__B____  

一個類的成員函數(shù)可以任意調(diào)用

通常,只有通過具體的對象,才能訪問類的成員函數(shù)

對象是模板,類是實例

類和對象間沒有任何關(guān)系

 

20、有關(guān)構(gòu)造函數(shù)的說法不正確的是____D____

A 構(gòu)造函數(shù)名字和類的名字一樣          B 構(gòu)造函數(shù)在說明類變量時自動執(zhí)行

C 構(gòu)造函數(shù)無任何函數(shù)類型              D 構(gòu)造函數(shù)有且只有一個

 

21、有關(guān)析構(gòu)函數(shù)的說法不正確的是___C_____

A 析構(gòu)函數(shù)有且只有一個

B 析構(gòu)函數(shù)無任何函數(shù)類型

C 析構(gòu)函數(shù)和構(gòu)造函數(shù)一樣可以有形參

D 析構(gòu)函數(shù)的作用是在對象被撤銷時收回先前分配的內(nèi)存空間

 

22、在類的定義體外定義成員函數(shù)時,需要在函數(shù)名前加上__B______

A 類標(biāo)記      B 類域標(biāo)記     C 類對象      D 域運算符

 

23、在類的定義形式中,數(shù)據(jù)成員、成員函數(shù)和___A____組成了類定義體。

A 成員的訪問控制消息   B 公有消息    C 私有消息    D 保護(hù)消息

 

24____C____的功能使對對象進(jìn)行初始化。

A 析構(gòu)函數(shù)    B 數(shù)據(jù)成員    C 構(gòu)造函數(shù)    D 靜態(tài)成員函數(shù)

 

25、若Q是類,a是它的一個對象,p1是類對象a的一個指針,那么類對象a可以通過①___B____來訪問類的成員,類對象a的指針p1可以通過②_____D__來訪問類的成員。

A   ::        B     .      C         D ->

 

26、下列的各類函數(shù)中,___C______不是類的成員函數(shù)

構(gòu)造函數(shù)B 析構(gòu)函數(shù) C 友元函數(shù) D 拷貝初始化構(gòu)造函數(shù)

 

27、通常拷貝初始化構(gòu)造函數(shù)的參數(shù)是______C____

A 某個對象名    B 某個對象的成員名   C 某個對象的引用名    D 某個對象的指針名

 

28、類模板的使用實際上是將類模板實例化成一個具體的____A___

A      B 對象    C   函數(shù)    D 模板類

 

29、模板是實現(xiàn)類屬機(jī)制的一種工具,其功能非常強大,它既允許用戶構(gòu)造類屬函數(shù),既① ____B___;也允許用戶構(gòu)造類屬類,即② ______D__

A 函數(shù)模板 B模板函數(shù) C 類模板   D 模板類

 

30、關(guān)于對象的this指針,以下敘述正確的是__B____

A 必須顯式地在類定義中聲明this數(shù)據(jù)成員,才能使用this指針

B 一旦生成一個對象,該對象的this指針就指向該對象本身

C 一個類的所有對象的this指針的值都是相同的

D 不能通過對象的this指針訪問對象的數(shù)據(jù)成員和成員函數(shù)

 

31、關(guān)于new運算符的下列描述中,   D       是錯誤的。

A 它可以用來動態(tài)創(chuàng)建對象和對象數(shù)組

B 使用它創(chuàng)建的對象或?qū)ο髷?shù)組,可以使用運算符delete刪除

C 使用它創(chuàng)建對象時要調(diào)用構(gòu)造函數(shù)

D 使用它創(chuàng)建對象數(shù)組時必須指定初始值

 

32、關(guān)于delete運算符的下列描述中,     C   是錯誤的。

A 它必須用于new返回的指針

B 它也適用于空指針

C 對一個指針可以使用多次該運算符

D 指針名前只用一對方括號,不管所刪除數(shù)組的維數(shù)

 

繼承和派生

33C++中的類有兩種用法:一種是類的實例化,即生成類的對象,并參與系統(tǒng)的運行;另一種是通過________,派生出新的類。

A 復(fù)用          B 繼承          C 單繼承       D 多繼承

//答案:B  

 

34、繼承具有_______,即當(dāng)基類本身也是某一個類的派生類時,底層的派生類也會自動繼承間接基類的成員。

A 規(guī)律性       B 傳遞性       C 重復(fù)性       D 多樣性

//答案:

 

35、派生可以分為①________②_________。由②________得到的派生類,其基類的所有公有成員都只能成為它的私有成員,這些私有成員只能被派生類的成員函數(shù)訪問,而③________無權(quán)訪問;①________的意義是基類中所有公有成員在派生類中也都是公有的。

A 公有派生          B 派生類的使用者       C 私有派生          D 派生類的構(gòu)造函數(shù)

//答案:①A②C③B  

 

36、基類的①________不能為派生類的成員訪問,基類的②_______在派生類中的性質(zhì)和繼承的性質(zhì)一樣,而基類的③_______在私有繼承時在派生類中成為私有成員函數(shù),在公有和保護(hù)繼承時在派生類中仍為保護(hù)成員函數(shù)

A 公有成員          B 私有成員          C 私有成員函數(shù)          D 公有成員函數(shù)

//答案:① B②A③D   

 

37、子類的數(shù)據(jù)成員和成員函數(shù)除了有從父類繼承而來的外,還有:         

子類不能擁有自己的數(shù)據(jù)成員和成員函數(shù)

子類可以新添自己的數(shù)據(jù)成員,但成員函數(shù)只能從父類繼承

子類可以新添自己的成員函數(shù),但數(shù)據(jù)成員只能從父類繼承

子類可以擁有自己獨特的數(shù)據(jù)成員和成員函數(shù)

//答案:D  

 

38、在構(gòu)造一個類的對象時,如果該類是從另一個類繼承的,則構(gòu)造函數(shù)的調(diào)用順序是   

A  同類的繼承關(guān)系無關(guān)

先調(diào)用父類的構(gòu)造函數(shù),然后調(diào)用本類的構(gòu)造函數(shù)

先調(diào)用本類的構(gòu)造函數(shù),然后調(diào)用父類的構(gòu)造函數(shù)

不用調(diào)用構(gòu)造函數(shù)

//答案:B  

 

39、在析構(gòu)一個類的對象時,如果該類是從另一個類繼承的,則析構(gòu)函數(shù)的調(diào)用順序是   

同類的繼承關(guān)系無關(guān)

先調(diào)用父類的析構(gòu)函數(shù),然后調(diào)用本類的析構(gòu)函數(shù)

先調(diào)用本類的析構(gòu)函數(shù),然后調(diào)用父類的析構(gòu)函數(shù)

不用調(diào)用析構(gòu)函數(shù)

//答案:C


重載、多態(tài)和虛函數(shù)

40、下列運算符中,________運算符在C++中不能重載。

A ?:             B +           C –              D <=

//答案:A  

 

41、下列運算符中,________運算符在C++中不能重載。

A &&            B [ ]                     C ::            D new

//答案:C  

 

42、如果一個類至少有一個純虛函數(shù),那么就稱該類為________

A 抽象類       B 虛基類              C 派生類       D 以上都不是

//答案:A   

 

43、下列描述中,________是抽象類的特性。

A 可以說明虛函數(shù)

B 可以進(jìn)行構(gòu)造函數(shù)重載

C 可以定義友元函數(shù)

D 不能說明其對象

//答案:

 

44、關(guān)于動態(tài)聯(lián)編的下列描述中,________是錯誤的。

A 動態(tài)聯(lián)編是以虛函數(shù)為基礎(chǔ)的

B 動態(tài)聯(lián)編是在運行時確定所調(diào)用的函數(shù)代碼的

C 動態(tài)聯(lián)編調(diào)用函數(shù)操作是指向?qū)ο蟮闹羔樆驅(qū)ο笠?/span>

D 動態(tài)聯(lián)編是在編譯時確定操作函數(shù)的

//答案:

 

45、關(guān)于虛擬成員函數(shù),以下敘述正確的是________

A 析構(gòu)函數(shù)同構(gòu)造函數(shù)一樣,不能是虛擬的

B 在一個類中被定義為虛擬的成員函數(shù),其所有的派生類中相同的成員函數(shù)都是虛擬的

C 帶有虛擬函數(shù)的類不能直接生成對象,只有其子類才能生成對象

D 虛擬成員函數(shù)同普通成員函數(shù)不同,不能調(diào)用父類的虛擬成員函數(shù)

//答案:

 

 

46、關(guān)于虛函數(shù)的描述中,              是正確的

虛函數(shù)是一個static類型的成員函數(shù)

虛函數(shù)是一個非成員函數(shù)

基類中說明了虛函數(shù)后,派生類中與其對應(yīng)的函數(shù)可不必說明為虛函數(shù)

派生類的虛函數(shù)與基類的虛函數(shù)具有不同的參數(shù)個數(shù)和類型

//答案:C  

 


填空題:

C++概述

 

47、寫出除class private protectedpublic之外的任意五個C++新增的關(guān)鍵字                                                                 

參考//答案:catch, ,const,delete,friend,new,operator, template,this,throw,try,virtual 

 

48_____________是指一種事物保留了另一種事物的全部特征,并且有自身的獨有特征。

//答案:繼承 

 

49C++語言中使用函數(shù)重載、模板、__________等概念來支持多態(tài)性。

//答案:虛函數(shù) 

 

50、在C++中有兩種類型的注釋,一種是C語言中使用的注釋符(/*···*/),另一種是______

//答案://

 

51、在C++類中可以包含__________________三種具有不同訪問控制權(quán)的成員。

//答案:publicprotectedprivate

 

 


類和對象

52、類中的數(shù)據(jù)和成員函數(shù)默認(rèn)類型為_________

//答案:私有

 

53、任何類中允許有三種權(quán)限的數(shù)據(jù)成員                           

//答案: public   private   protected  

 

54、靜態(tài)數(shù)據(jù)成員在定義或說明時前面要加上關(guān)鍵字         

//答案:static

 

55、以下程序運行的結(jié)果_________

#include “iostream.h”

class CSample

{

       private:

       int i;

       public:

       CSample();

       CSample(int val);

       void Display();

       ~CSample();

};

CSample::CSample()

{

       cout << “Constructor1” << endl;

       i=0;

}

CSample:: CSample(int val)

{

cout << “Constructor2” << endl;

       i=val;

}

void CSample::Display()

{

       cout << ”i=” << i << endl;

}

CSample::~CSample()

{

       cout << “Destructor” << endl;

}

void main()

{

       CSample a, b(10);

a.Display();

       b.Display();

}

//答案:

Constructor1

Constructor2

i=0

i=10

Destructor

Destructor

 

56、以下程序執(zhí)行的結(jié)果是_____________________

#include <iostream.h>

class B

{

       int x,y;

public:

       B() {x = y = 0; cout << “Constructor1” << endl;}

       B(int i) {x = i; y = 0; cout << “Constructor2” << endl;}

       B(int i ,int j) {x = i; y = j; cout << “Constructor3” << endl;}

       ~B() {cout << “Destructor” << endl;}

       void print() {cout << “x=” << x << “,y=” << y << endl;}

};

void main()

{

       B *ptr;

       ptr = new B[3];

       ptr[0] = B();

       ptr[1] = B(5);

       ptr[2] = B(2,3);

       for (int i=0;i<3;i++)

              ptr[i].print();

       delete[] ptr;

}

//答案:

Constructor1

Constructor1

Constructor1

Constructor1

Destructor

Constructor2

Destructor

Constructor3

Destructor

x=0,y=0

x=5,y=0

x=2,y=3

Destructor

Destructor

Destructor

 

57、以下程序執(zhí)行的結(jié)果是_____________________

class B{  

int x,y;

public:

       B() {x = y = 0; cout << "Constructor1" << endl;}

       B(int i) {x = i; y = 0; cout << "Constructor2" << endl;}

       B(int i ,int j) {x = i; y = j; cout << "Constructor3" << endl;}

       ~B() {cout << "Destructor" << endl;}

       void print() {cout << "x=" << x << ",y=" << y << endl;}

};

void main(){

       B *ptr;

       ptr = new B[2];       ptr[0] = B();

       ptr[1] = B(5);               delete[] ptr;

}

//答案:Constructor1 

 Constructor1   

Constructor1   

Destructor     

Constructor2   

Destructor       

Destructor        

Destructor        

 

 

58、以下程序執(zhí)行結(jié)果是_____________

#include <iostream.h>

class A

{

public:

       A(int i=0) {m = i; cout << "Constructor" << m << endl; }

       void set(int i) {m = i;}

       void print() const {cout << m << endl;}

       ~A() {cout << "Destructor" << m << endl;}

private:

       int m;

};

void fun(const A &c)

{

       c.print();

}

void main()

{

       fun(5);

}

//答案:

Constructor5

5

Destructor5


繼承和派生

59、以下程序執(zhí)行結(jié)果是________________

#include <iostream.h>

class A

{

public:

       A(int i, int j) {a = i; b = j;}

       void move (int x, int y) {a += x; b += y;}

       void show() { cout << “(“ << a << “,” << b << “)” << endl;}

private:

       int a, b;

};

class B:private A

{

public:

       B(int i, int j, int k, int l):A(i, j)

       {

              x =k; y = l;

}

void show()

{ cout << x << “,” << y << endl;}

void fun() {move (3,5);}

void f1() { A::show();}

private:

       int x, y;

};

void main()

{

       A   e(1,2);

       e.show();

       B   d(3,4,5,6);

       d.fun();

       d.show();

       d.f1();

}

//答案:(1,2)

       5,6

       (6,9)

 

void main()

{

       A   e(1,2);

       e.show();

       B   d(3,4,5,6);

       d.fun();

       d.A::show();

 d.B::show();

       d.f1();

}

//答案: (1,2)

       (6,9)

       5,6

       (6,9)

 

60、以下程序執(zhí)行結(jié)果是________________

# include <iostream.h>  

class A {

    int a;

public:

    A(int aa=0) { a=aa; }

    ~A() { cout <<"Destructor A!"<<a<<endl;  }

};

class B:public A {

    int b;

public:

    B(int aa=0,int bb=0):A(aa) { b=bb; }

    ~B() { cout <<"Destructor B!"<<b<<endl; }

};

void main() {

    B x(5),y(6,7);  // 后定義的變量將先被釋放

}

//答案:

Destructor  B!  7

Destructor  A!  6

Destructor  B!  0

Destructor  A!  5


重載多態(tài)和虛函數(shù)

61、以下程序執(zhí)行結(jié)果是________________

#include <iostream.h>

class base

{

public:

       base()

{

cout << “構(gòu)造base子對象” << endl;

f();

}

virtual void f()

{

       cout << “調(diào)用base::f()” << endl;

}

};

class derived : public base

{

public:

       derived()

       {

       cout << “構(gòu)造derived對象” << endl;

       f();

}

void f()

{

       cout << “調(diào)用derived :: f()” << endl;

}

};

void main()

{

       derived d;

}

//答案:

構(gòu)造base子對象

調(diào)用base::f()

構(gòu)造derived對象

調(diào)用derived :: f()

 

62、以下程序執(zhí)行結(jié)果是________________

#include <iostream.h>

class base

{

public:

       base() {

cout << “Constructor base subobject” << endl;

f(); }

virtual void f()       {

       cout << “Call base::f()” << endl;   }

};

class derived : public base

{

public:

       derived() {

       cout << “Constructor derived object” << endl;

       f(); }

void f()   {

       cout << “Call derived :: f()” << endl;   }

};

void main(){

       derived d;

}

//答案:

Constructor base subobject      

Call base::f()              

Constructor derived object  

Call derived :: f()         

 

 

63、以下程序執(zhí)行結(jié)果是________________

#include <iostream.h>

class Sample

{

private:

       int x;

public:

       Sample() {x = 0;}

       void disp()

       {

       cout << “x=” << x << endl;

}

void operator ++() {x += 10;}

};

void main()

{

       Sample obj;

       obj.disp();

obj ++;

cout << “執(zhí)行obj++之后” << endl;

obj.disp();

}

//答案:

x=0

執(zhí)行obj++之后

x=10

 

 

64、以下程序執(zhí)行結(jié)果  

#include <iostream.h>

class base

{

public:

       virtual void f1()

       { cout<<"f1 fuc of base"<<endl;}

       virtual void f2()

       { cout<<"f2 fuc of base"<<endl;}

       virtual void f3()

       { cout<<"f3 fuc of base"<<endl;}

       void f4()

       { cout<<"f4 fuc of base"<<endl;}

};

 

class derive : public base

{

       void f1()

       { cout<<"f1 fuc of derive"<<endl;}

       void f2(int x)

       { cout<<"f2 fuc of derive"<<endl;}

       void f4()

       { cout<<"f4 fuc of derive"<<endl;}

};

 

void main()

{

       base obj1, *p;

       derive obj2;

       p = &obj1;

       p->f1();

       p->f2();

       p->f3();

       p = &obj2;

       p->f1();

       p->f2();

       p->f4();

}

 

//答案:

    f1 fuc of base

    f2 fuc of base

    f3 fuc of base

    f1 fuc of derive

    f2 fuc of base

f4 fuc of base


解析題:

*65、指出程序中的錯誤,并予以改正(全部重寫)

#include “iostream.h”

class point

{int x1;

public:

int x2;

public:

point(int x, int y);

//......

};

void main()

{     point data(5,5);

       cout << data.x1 << endl;

       cout << data.x2 << endl;

}

//答案:構(gòu)造函數(shù)定義不正確main()中對數(shù)據(jù)成員x1訪問不正確

改正:

#include “iostream.h”

class point

{int x1;

public:

int x2;

public:

point(int x)

{

       x1=x;

}

void disp()

{

       cout << x1 << endl;

}

};

void main()

{

       point data(5);

       data.disp();

       cout << data.x2 << endl;

}

#include “iostream.h”

class point

{

       int x1;

public:

int x2;

public:

point(int x)

{

       x1=x;

}

int disp()

{

       return x1;

}

};

void main()

{

       point data(5);

       cout << data.disp() << endl;

       cout << data.x2 << endl;

}

 

 

 

66、分析以下程序的執(zhí)行的順序以及輸出結(jié)果

#include "iostream.h"

 

class Sample

{

public:

       Sample()

       {

              cout << "構(gòu)造函數(shù)" << endl;

       }

 

};

 

void fn(int i)

{

       static Sample c;

       cout << "i=" << i << endl;

 

}

 

void main()

{

       fn(10);

       fn(20);

}

 

//答案:

程序中fn(int i)函數(shù)中的static Sample c; 語句定義的是一個靜態(tài)對象,僅在函數(shù)第一次進(jìn)入時創(chuàng)建該對象,以后在進(jìn)入時,c對象便始終存在,fn(int i)函數(shù)不再為其創(chuàng)建,所以程序執(zhí)行結(jié)果如下:

構(gòu)造函數(shù)

i=10

i=20

 

 

67、給出程序執(zhí)行結(jié)果 

#include <iostream.h>

class MyDataType

{

protected:

       int m_nData;

public:

       MyDataType( )    {

                     m_nData = -1;

                     cout << "Constructor MyDataType" << endl;              }

       MyDataType & operator = (int n) {

                     m_nData = n;

                     return *this;           }

       MyDataType & operator = (MyDataType & obj)      {

                     m_nData = obj.m_nData;

                     return *this;           }

       MyDataType & operator + (MyDataType & obj2)       {

                     static      MyDataType tempData;

                     tempData = m_nData + obj2.m_nData;

                     return tempData;           }

       operator int()        {      return m_nData;     }//定義一個從MyDataType類型到int類型的轉(zhuǎn)換

};

void main()

{

       MyDataType Obj1,Obj2;

       Obj1 = 10;

       Obj2 = Obj1;

       MyDataType Obj3 = Obj1 + Obj2;

       int nValue = (int)Obj3;

       cout << "nValue = " << nValue << endl;

}

 

//答案:

       Constructor MyDataType

Constructor MyDataType

Constructor MyDataType

nValue = 20

 

 

68指出程序中的錯誤,改正并簡述原因

#include <iostream.h>

class Base

{

public:

       void SetX(int i) {x = i;}

       int GetX() {return x;}

private:

       int x;

};

class Derived : public Base

{

public:

       void SetY(int i) {y = i;}

       int GetY() {return y;}

private:

       int y;

};

void main()

{

       Base *p;

       Base b_ob;

       Derived d_ob;

       p = &b_ob;

       p->SetX(11);

       cout << "base object x:" << p->GetX() << endl;

       p = &d_ob;

       p->SetX(55);

       cout << "base object x:" << p->GetX() << endl;

       p->SetY(99);

       cout << "derived object y:" << p->GetY() << endl;

}

 

//答案:p->SetY(99)是錯誤的,改為d_ob.SetY(99)

基類指針雖然可以指向派生類的對象,但是只可以訪問派生類中從該基類繼承下來的的那些成員(如GetX())。基類指針指向的對象只認(rèn)識基類,而不知道關(guān)于派生類的成員信息。

 

69、分析程序給出運行結(jié)果

#include <iostream.h>

 

class Base

{

public:

       virtual void show()

       {cout<<"Parent class.\n";}

};

 

class First: public Base

{

public:

       void show()

       {cout<<"First Derived class.\n";}

};

 

class Second :public Base

{

public:

       void show()

       {cout<<"Second Derived class.\n";}

};

 

void main()

{

       Base b1, *ptr;

       First f1;

       Second s1;

       ptr = &b1;

       ptr->show();

       ptr = &f1;

       ptr->show();

       ptr = &s1;

       ptr->show();

}

 

//答案:

Parent class.

First Derived class.

Second Derived class.

 

70、分析程序給出運行結(jié)果,說明原因

#include <iostream.h>

 

class Base

{

public:

       void show()

       {cout<<"Parent class.\n";}

};

 

class First: public Base

{

public:

       void show()

       {cout<<"First Derived class.\n";}

};

 

class Second :public Base

{

public:

       void show()

       {cout<<"Second Derived class.\n";}

};

 

void main()

{

       Base b1, *ptr;

       First f1;

       Second s1;

       ptr = &b1;

       ptr->show();

       ptr = &f1;

       ptr->show();

       ptr = &s1;

       ptr->show();

}

 

//答案:

Parent class.

Parent class.

Parent class.

由于基類中show函數(shù)沒聲明成虛函數(shù),這時的函數(shù)調(diào)用是在編譯時靜態(tài)聯(lián)編的。

 


posted on 2011-05-31 22:05 DoubleW 閱讀(2761) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2025年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用鏈接

留言簿(3)

隨筆檔案(12)

文章檔案(2)

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 29331
  • 排名 - 665

最新隨筆

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲日韩成人| 国产中文一区二区| 裸体丰满少妇做受久久99精品| 久久久久.com| 久久精品视频在线免费观看| 尤物九九久久国产精品的特点| 久久国产精品电影| 美女国产一区| 久久一二三四| 久久亚洲一区二区| 国产精品自拍三区| 欧美精品免费看| 老司机一区二区| 久久国产精品久久w女人spa| 久色成人在线| 久久久久99| 久久久精品午夜少妇| 久久国产日本精品| 欧美影院一区| 久久久久一区二区三区| 久久久777| 香蕉久久精品日日躁夜夜躁| 亚洲自拍偷拍麻豆| 一本不卡影院| 一区二区三区产品免费精品久久75 | 一区二区三区中文在线观看| 国产日韩av一区二区| 国产精品一区二区你懂得| 国产免费亚洲高清| 欧美午夜电影一区| 国产深夜精品| 在线看一区二区| 99国产精品久久久久老师| 一区二区三区视频在线| 亚洲国产精品国自产拍av秋霞| 精品电影在线观看| 99综合电影在线视频| 午夜精品久久| 老司机午夜精品视频在线观看| 亚洲一区二区三区中文字幕在线 | 国产精品v一区二区三区| 亚洲一区二区在线视频| 欧美性视频网站| 麻豆av一区二区三区| 久久激情视频久久| 欧美一级黄色录像| 欧美大尺度在线| 国产欧美大片| 国产欧美不卡| 91久久精品国产91性色tv| 精品成人在线| 一区二区av在线| 久久天天躁夜夜躁狠狠躁2022 | 亚洲片在线资源| 亚洲视频欧洲视频| 久久综合给合久久狠狠色| 亚洲精品在线免费| 亚洲婷婷在线| 女女同性精品视频| 欧美激情一区二区三区在线| 国产九九精品视频| 国产亚洲欧洲一区高清在线观看 | 亚洲啪啪91| 久久精品国产欧美亚洲人人爽| 亚洲国产欧美在线人成| 欧美在线一二三| 亚洲女与黑人做爰| 欧美激情亚洲另类| 欧美在线视频一区二区| 国产精品超碰97尤物18| 亚洲国产成人不卡| 久久一区视频| 欧美一区二区精品在线| 国产精品久久久久aaaa樱花| 99成人免费视频| 亚洲经典在线看| 久久天天狠狠| 欧美视频在线观看| 国产精品网站在线播放| 在线亚洲激情| 99视频超级精品| 欧美日韩第一区| 国产女人18毛片水18精品| 国产精品一区二区在线观看不卡| 欧美精品一卡| 亚洲精品视频在线| 国产精品自拍三区| 制服诱惑一区二区| 亚洲黄色小视频| 欧美日韩中国免费专区在线看| 国产一区二区三区在线观看视频| 亚洲欧美日本国产专区一区| 久久精品国产91精品亚洲| 美女久久网站| 久久免费精品视频| 国产一区亚洲一区| 国产精品劲爆视频| 99精品视频免费观看视频| 91久久国产综合久久91精品网站| 午夜精品久久久久| 欧美成人69| 韩国女主播一区二区三区| 另类尿喷潮videofree| 久久久欧美精品| 99在线精品视频| 欧美一区深夜视频| 在线观看日韩av| 欧美第一黄网免费网站| 欧美88av| 亚洲免费一区二区| 性久久久久久| 亚洲经典在线| 一区二区三区四区五区精品视频| 国产精品国产三级欧美二区| 欧美在线91| 亚洲欧美日韩精品久久| 国产午夜精品久久久| 欧美成人免费在线观看| 久久久一本精品99久久精品66| 亚洲国产精品毛片| 亚洲视频播放| 国产精品视频精品| 蜜桃精品一区二区三区| 欧美精品日韩三级| 久久精品国产亚洲a| 欧美精品97| 久久久精品国产免大香伊| 欧美成年人网站| 久久精品123| 欧美日韩一区二区在线| 狂野欧美一区| 国产精品嫩草影院一区二区| 亚洲欧美国产精品va在线观看| 99日韩精品| 亚洲欧洲日本mm| 欧美一区在线直播| 亚洲一区免费视频| 欧美va亚洲va国产综合| 久久国产日韩欧美| 国产精品久久99| 亚洲人精品午夜| 久久综合九色九九| 欧美精品一区二区三区视频| 亚洲精品欧美日韩专区| 亚洲欧美成人网| 在线播放国产一区中文字幕剧情欧美 | 亚洲欧美日韩成人| 久久夜色精品| 亚洲午夜91| 久久一区二区三区四区| 亚洲欧美激情视频| 欧美日韩免费| 欧美国产一区在线| 尤物视频一区二区| 久久精品在线观看| 久久久国产成人精品| 国内成人自拍视频| 欧美影院成年免费版| 欧美一区二区三区另类 | 国产精品扒开腿爽爽爽视频| 99综合在线| 久久精品一区二区| 91久久黄色| 欧美私人网站| 久久精品五月| 亚洲精品乱码久久久久久久久| 亚洲一区综合| 伊伊综合在线| 欧美日韩精品在线| 欧美中文字幕不卡| 亚洲福利免费| 亚洲欧美综合国产精品一区| 黄色精品一区| 欧美日韩亚洲网| 久久精品中文字幕一区| 亚洲国产精品一区在线观看不卡| 亚洲视频香蕉人妖| 永久免费精品影视网站| 欧美日韩大片一区二区三区| 欧美淫片网站| 日韩一级精品视频在线观看| 久久精品国产99国产精品澳门 | 亚洲国产日本| 国产乱理伦片在线观看夜一区 | 亚洲男人第一av网站| 欧美成人久久| 欧美影片第一页| 亚洲美女av黄| 韩国久久久久| 国产精品视频一区二区高潮| 欧美顶级少妇做爰| 久久先锋影音| 性久久久久久| 亚洲午夜激情网页| 亚洲日本免费| 欧美成人免费在线观看| 久久精品国产69国产精品亚洲 | 久久尤物视频| 一色屋精品视频免费看| 久久国产精品一区二区|