自考 C 雜記 類和物件

2021-09-25 11:57:19 字數 2412 閱讀 2353

1)成員函式直接使用自己類的私有成員

2)類外面的函式不能直接訪問類的私有成員

3)類外面的函式只能通過類的物件使用該類的公有成員函式

4)物件a和b**一樣 ,但屬性值不一樣

1)特殊的成員函式,它與類名同名,實現對該物件的初始化

2)既可以定義成有參函式,也可以定義成無參函式

3)過載建構函式時,根據建構函式中的引數個數和型別選擇合適的建構函式eg: add(int a,int b) add(float a,float b)

如果函式返回值作為另乙個函式的引數,這個返回值必須與引數的型別一致。

拷貝建構函式是指將已存在的該類的乙個物件通過引用作為建構函式的引數進行傳遞從而達到建構函式的目的。一般地存在拷貝建構函式的同時也會有其他的建構函式存在。

class point

point :: point (point &t)

void main()

//最後這條語句呼叫了拷貝建構函式point :: point (point &t),用obj1初始化obj2

//拷貝建構函式必須使用物件的引用作為形式引數,為安全起見推薦使用的原型為point (const point &);

1)物件使用完畢後且在物件消失前,系統會自動呼叫類的析構函式來釋放系

統資源,在類名的前面加上"~"

2)沒有返回值,也沒有引數。乙個類中只能擁有乙個析構函式,析構函式不

能過載。

保證每個物件擁有自己的資料成員,但其**可以被共享

(1) 同一類的物件之間可以相互賦值。(2)可使用物件陣列。

(3)可使用指向物件的指標。(4)物件可以用作函式引數。

(5)物件作為函式引數時,可以使用物件、物件引用和物件指標。(6)乙個物件可以用作另乙個類的成員。

(1)使用類的許可權

(2)不完全的類宣告

(3)空類

(3)類作用域

物件導向的四個基本特性是多型性、繼承性、封裝性、抽象

物件傳遞訊息的三部分:接收物件名、呼叫操作名、必要的引數

1.設類a將其它類物件作為成員,則建立a類物件時,下列描述正確的是( )

a.a類建構函式先執行     b.成員建構函式先執行

c.兩者並行執行       d.不能確定

【分析】類的組合,描述的是乙個類內嵌其他類的物件作為成員的情況,它們之間的關係是一種包含與被包含的關係。

【答案】b

在宣告乙個組合類的物件時,不僅它自身的建構函式將被呼叫,而且還將呼叫其內嵌物件的建構函式。這時建構函式的呼叫順序是:

(1)按照內嵌物件在組合類的宣告**現的次序,依次呼叫內嵌物件的建構函式;

(2)執行本類建構函式的函式體

析構函式的呼叫執行順序與建構函式剛好相反。

2.設在程式中使用如下語句申請了乙個物件陣列:point * ptr = new point[2];

則在需要釋放ptr指向的動態陣列物件時,所使用的語句是( )。

【分析】 動態物件的建立:new 刪除:delete

【答案】delete [ ] ptr

3.下列關於析構函式的描述中正確的是(   )

a.析構函式可以過載       b.析構函式可以是虛函式

c.析構函式名與類名相同     d.析構函式的返回型別為void

【分析】析構函式的性質

【答案】b

基類指標可以指向派生類的物件(多型性),如果刪除該基類指標(指向派生類物件)delete p;就會呼叫該指標指向的派生類析構函式,而派生類的析構函式又自動呼叫基類的析構函式,這樣整個派生類的物件完全被釋放

如果基類析構函式不被宣告成虛函式,則編譯器實施靜態繫結,在刪除基類指標時只會呼叫基類的析構函式而不呼叫派生類析構函式,這樣就會造成派生類物件析構不完全。所以,將析構函式宣告為虛函式是十分必要的。

4.改錯題:

class point

point(int x=0,int y=0)

void display( )  //建構函式有二義性;不知道將x賦值給哪乙個x,用網域名稱控制符和消除成員名控制二義性

5.物件導向程式設計不僅能進行功能抽象,而且能進行__資料__抽象。

6.複製建構函式使用__物件的引用__作為形式引數。

自考 C 雜記 函式和函式模板

目錄 函式和函式模板 一 函式的引數及其傳遞方式 1.c 的函式引數有兩種傳遞方式 2.函式引數的三種型別 二 預設引數以及使用const保護資料 三 函式返回值的4種情況 3.1返回引用的函式 3.2返回指標的函式 3.3返回物件的函式 3.4函式返回值作為函式的引數 四 內聯函式 五 函式過載和...

C 類和物件 類和物件

c 中物件的型別稱為類,類代表了某一批物件的共性和特徵,類是物件的抽象,而物件是類的具體例項,類是抽象的,不占用記憶體,而物件是具體的,占用 儲存空間,這點很重要,讀者需要牢記。類是使用者自己指定的型別,如果程式中要用到類型別,必須自己根據需要進行宣告,或者使用別人已設計好的類,c 標準本身並不提供...

自考 C 雜記 多型性及虛函式

靜態聯編 編譯時的多型性,函式過載實現 動態聯編 執行時的多型性,虛函式實現 只能是乙個成員函式,不能是靜態成員,用virtual關鍵字宣告。一旦基類定義了虛函式,該基類的派生類中的同名函式 返回值 引數列表與基類中的同名虛函式完全一致 那麼也自動成為虛函式。虛函式的呼叫規則是 根據當前物件,優先呼...