類和物件作業題分析詳解(作業六)

2021-08-19 18:56:10 字數 2683 閱讀 5317

1. 下列關於類的建構函式和析構函式的敘述中,不正確的是________。

a.類的析構函式可以過載

b. 類的建構函式可以過載

c.定義乙個類時,可以不顯式定義建構函式

d. 定義乙個類時,可以不顯式定義析構函式

分析:析構函式不返回任何值,沒有函式型別,也沒有函式引數。由於沒有函式引數,因此它不能被過載。乙個類可以有多個建構函式,但只能有乙個析構函式。

2. 下列說明中有關結構體定義的正確說法是________。

a.不能指定其成員的許可權 b.不能包含成員函式

c.其成員預設的許可權為公有的 d.不能包含物件成員

分析:c語言中的結構體只能包含資料,而在c++中的結構體實際上就是類,能包含資料也能包含函式,其成員也可指定公有、私有。區別在於其成員未宣告許可權時,預設許可權是public,結構體內也可以包括物件成員。

3. 乙個類的

析構函式________。

a.是唯一的  b.允許過載   c.至多可有兩個   d只能是預設的

4. 下列有關類和物件的說法中,正確的是________。

a.類與物件沒有區別

b.要為類和物件分配儲存空間

c.物件是類的例項,為物件分配儲存空間而不為類分配儲存空間

d.類是物件的例項,為類分配儲存空間而不為物件分配儲存空間

分析:略。

5. 假定ab為乙個類的類名,則該類的拷貝建構函式的函式原型是

a.ab &(ab x);   b.ab (ab x)   c.ab (ab & x)  d.ab (ab * x)

分析:拷貝建構函式,又稱複製建構函式,是一種特殊的建構函式,它由編譯器呼叫來完成一些基於同一類的其他物件的構建及初始化。其唯一的形參必須是引用,但並不限制為const,一般普遍的會加上const限制。

6. 下列各類函式中,

不是類的成員函式。

a.建構函式

b.析構函式

c.友元函式

d.拷貝建構函式

7. 乙個類的友元函式能夠訪問該類的

a.私有成員

b.保護成員

c.公有成員

d.所有成員

8. 下述靜態成員的特性中,錯誤的是

a.說明靜態資料成員時前邊要加修飾符static

b.靜態資料成員要在類體外重新定義並進行初始化

c.引用靜態資料成員時,要在靜態資料成員前加類名和作用域運算子

d.靜態資料成員不是所有物件共有的

分析:靜態資料成員是被類的所有物件共享,它不屬於類的任何乙個物件,它的作用域是類範圍。靜態資料成員在每個類物件中並不占有儲存空間,它只是每個類中分配有儲存空間,供所有物件公用。靜態資料成員的值對每個物件都一樣,但它的值可以被任何乙個物件更新,從而實現了同一類的不同物件之間的資料共享。

9. 如下程式定義了乙個時鐘類:

時鐘類具有時、分、秒屬性,具有設定和顯示時間屬性的公共介面函式,請根據自己的理解在________處填上相應的語句,並寫出其輸出結果_______________。

#include

class clock

public:

void settime(int newh, int newm, int news);

void showtime()

coutint hour, minute, second;

void  clock::settime(int newh = 0, int newm = 0, int news = 0)

_hour=newh______________

;_minute=newm______________

;_second=news______________;

void main()

clock myclock;

cout<<"first time set and output:\n";

myclock.settime();

myclock.showtime();

cout<<"second time set and output:\n";

clock  _*temp=&myclock______________;

temp->settime(12, 56);

temp->showtime();

cout<<"third time set and output:\n";

temp->settime(8, 30, 30);

temp->showtime();

輸出結果:

first time set and output:

0:0:0

second time set and output:

12:56:0

third time set and output:

8:30:30

10.讀程式,寫結果。

#include class point

point(point &p);

int getx()

int gety()

private:

int x,y;

};point::point(point &p)

void main()

{point a(3,4);

point b(a);

cout《輸出結果:

呼叫建構函式

呼叫拷貝建構函式

3

物件導向應用例項之作業題

分析以下需求並實現 手機類phone 屬性 品牌brand price 行為 打 call 發簡訊sendmessage 玩遊戲playgame 要求 1.按照以上要求定義類,屬性要私有,生成空參 有參構造,setter和getter方法 2.定義測試類,在main方法中建立該類的物件並給屬性賦值 ...

物件導向程式設計技術 作業題二

include define use math defines include using namespace std class cshape 圓 class ccircle public cshape virtual ccircle virtual double area virtual dou...

軟體測試和測試環境作業題

1.1什麼是軟體?1.2什麼是軟體測試?1.3什麼是測試環境?1.4計算機中為什麼要使用二進位制儲存資料?說說你的理解 1.5計算 273 的二進位制 八進位制 十六進製制形式 1.6計算 10010111b 的十進位制 八進位制 十六進製制形式 1.7什麼是 ascii?1.8寫出下列字元的 as...