C 第一章回顧

2023-01-02 03:24:03 字數 3029 閱讀 4761

回顧一下上第一章學到的知識

1. 類和物件的概念(理解)。物件導向的特徵。

2. 建構函式的概念,四個特徵。(程式中最少有乙個)

3. 預設建構函式。

4. 建構函式的過載(函式過載的概念)

5. 帶有預設值的建構函式(也稱為預設建構函式)

6. 建構函式的呼叫以及衝突(帶有預設值的建構函式與其他建構函式可能會產生衝突)

結論:如果在函式中定義了帶有預設值的建構函式,則不必再寫其他建構函式,帶有預設值建構函式已經將所有情況包括在內。

7. 建構函式的初始化列表形式(注意,只有類的建構函式可以用),初始化列表形式與在建構函式函式體裡面初始化的區別。初始化列表形式效率更高。

8. const函式,常成員函式(注意地方), const引用區別

const int &func(int);

int func(const int&);

int func(int) const;

const int &func(const int&)const

9. 析構函式的概念,四個特徵(程式中只有乙個)。

析構函式的作用!釋放成員指標所指向的動態分配的記憶體!或者做一些釋放資源的工作。

析構函式不是用來釋放物件本身!(如果物件存在棧上,則系統來釋放物件。如果物件存在於堆上,則用delete來釋放物件)

10. 使用類和物件需要注意地方:const物件只能呼叫const方法、引用傳遞不會建立臨時物件。

11. 需要注意的結論有:const物件只能呼叫const方法;引用傳遞不會建立新的物件(臨時物件),節省了空間;不可以返回乙個區域性變數的引用(原因),值返回是可以的(生成臨時變數或物件);const成員函式在宣告和定義的地方都需要加const;

12. this指標:每乙個類的成員函式都有乙個隱藏的引數,乙個指向自身的指標。

需要注意,this指標只存在於成員函式中(作為引數),其它地方無法訪問。當構造函式引數名和物件的資料成員名一樣時,通過用this->資料成員 = 引數來賦值。

13. 成員函式的鏈式呼叫,必須返回自身(*this),並且不能生成臨時物件(返回值為物件引用,避免生成臨時物件)。

14. 定義乙個物件的幾種形式:

circle circle;可以

circle circle();不可以

circle *p = new circle;可以

circle *p = new circle();可以

15. 類的靜態成員:靜態資料成員、靜態成員函式。

靜態資料成員:不會被預設初始化,必須手動指定初始化。屬於整個類,每個物件都可以訪問。程式結束的時候釋放。定義的形式需要注意

int employee::next_id = 0;float employee::total_pay= 0

靜態成員函式:函式屬於整個類,因此沒有隱藏的this指標,每個物件都可以訪問。注意,函式只能訪問類中定義的static資料成員,無法訪問類的非static資料成員。

總結:靜態資料成員和靜態成員函式屬於整個類,每個物件都可以訪問,但推薦用類名::靜態資料成員或者類名::靜態成員函式(需要注意訪問許可權)。

16.友元函式與友元類:乙個類的友元函式或者友元類可以訪問本類的私有成員。特徵:1.不能傳遞2.無法繼承

17. 巢狀類

練習題1. 下面的函式宣告中,()是」void bc(int a, int b);」的過載函式。

a int bc(int x, int y);

b void bc(int a, char b);

c float bc(int a, int b, int c=0);

d int bc(int a, int b = 0);

2.區域性變數會隱藏全域性變數,那麼在有同名全域性變數和區域性變數的情形時,可以用()來提供對全域性變數的訪問。

a 作用域運算子

b 指標運算子

c 提取運算子

d 插入運算子

3.關於成員函式特徵的下述描述中,()是錯誤的。

a 成員函式一定是內聯函式

b 成員函式可以過載

c成員函式可以設定引數的預設值

d 成員函式可以是靜態的

4.靜態成員函式僅能訪問()。

a 靜態的資料成員

b 非靜態的成員函式

c 非靜態的資料成員

d 以上都不對

5.靜態資料成員的初始化必須在()。

a 類內

b 類外

c 在建構函式內

d 靜態成員函式內

6.關於靜態資料成員,下列說法錯誤的是()。

a 靜態資料必須初始化

b 靜態資料的初始化是在建構函式中進行的

c 說明靜態資料成員時前面要加static

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

7.以下對靜態資料成員的描述中,正確的是()。

a 靜態資料成員可以在類體內進行初始化

b 靜態資料成員不可以在類體內進行初始化

c 靜態資料成員不能受private控制符的作用

d 靜態資料成員可以直接用類名呼叫

8.下面對靜態資料成員的描述中,正確的是()。

a 靜態資料成員是類的所有物件共享的資料。

b 類的每乙個物件都有自己的靜態資料成員

c 類的不同物件有不同的靜態資料成員值

d 靜態資料成員不能通過類的物件呼叫

9.已經:print()函式是乙個類的常成員函式,它無返回值,下列表示中,()是正確的。

a void print() const;

b const void print();

c void const print();

d void print(const);

10.()不是建構函式的特徵。

a 建構函式的函式名與類名相同

b 建構函式可以過載

c 建構函式可以設定預設引數

d 建構函式必須指定型別說明

11.()是析構函式的特徵。

a 乙個類中只能定義乙個析構函式

b 析構函式在物件建立時呼叫

c 析構函式的定義只能在類體內

d 析構函式可以有乙個或多個引數

冀教版七上第一章回顧與反思課時訓練

15 五稜柱有個頂點,條稜,它的側面的形狀都是 它的底面的形狀是 16 將下面4個圖用紙複製下來,然後沿所畫線摺起來,把折成的立體圖形名稱寫在圖的下邊橫線上 17 課桌上按照下圖的位置放著乙個暖水瓶 乙隻水杯和乙個桌球 小明從課桌前走過 圖中虛線箭頭的方向 右圖描繪的是他在不同時刻看到的情況,請對這...

第一章C語言概述

1.1 選擇題 題1.1 乙個c程式的執行是從 a 本程式的main函式開始,到main函式結束b 本程式檔案的第乙個函式開始,到本程式檔案的最後乙個函式結束c 本程式的main函式開始,到本程式檔案的最後乙個函式結束d 本程式檔案的第乙個函式開始,到本程式main函式結束 題1.2 以下敘述正確的...

第一章績效

1.1 什麼是績效?1.1.1 績效問題的提出 了解組織的目標是否實現,實現的程度如何,需要引入一種評價手段,評價的物件就是績效。管理者需要了解員工工作的成果 工作行為以及員工的潛力。員工希望得到關於工作的反饋,以指導自身職業技能的提高和職業生涯的發展。管理學者希望找到一種理想的管理方法,能夠兼顧組...