C類和物件

2023-01-26 22:03:06 字數 2716 閱讀 6821

1. 物件導向設計簡介 1

2. 物件的初始化與清除、物件賦值 6

2.1. 建構函式 6

2.2. 初始化成員列表(引數初始化表) 9

2.3. 析構函式 10

3. 物件與常量 10

4. 靜態成員 11

5. 友員 12

5.1. 友員函式 12

5.2. 友員成員函式 13

5.3. 友員類 13

物件導向程式設計具有4個基本特徵:抽象、封裝、繼承、多型性。

類抽象:對事物共性進行歸納和集中。對事物抽象後形成所謂的類。類可視為同類事物的乙個集合。

類是物件的抽象,物件是類的例項。

物件動態特徵:行為(方法,介面,成員函式)

靜態特徵:屬性(資料,成員變數)

封裝和資訊隱藏:

將資料以及對資料進行操作的方法封裝起來,隱藏內部實現細節,對外提供方法供呼叫。呼叫者不需要或者沒有必要知道物件內部的實現細節(類的公用介面與私有實現相分離)。

類定義的一般形式為:

class 類名

;例如宣告乙個蟲子類

class cworm

;然後例項化一條小蟲子

cworm worm(20,30設定好小蟲子的初始螢幕座標,並在建構函式裡load自己的**

在螢幕上把自己畫出來

//移動小蟲子到100,100

在當前座標再一次畫小蟲子

或者cworm *pworm=new cworm(20,30);

pworm->draw(&dc);

pworm->move(100,100);

pworm->dram(&dc);

delete pworm殺死小蟲子

類的成員函式可以訪問同型別類的其它物件的任何成員。

例如#include ""

#include

using namespace std;

class ctest2

public:

void publicfunc(void *pvobj)

};void main()

成員函式的定義既可以在類宣告內,也可以分開定義,通常將類宣告放.**件,類函式定義放.cpp檔案中。

內聯的方式:

class cworm//}

分離的方式:

void cworm::move(int x, int y)

練習: 1、建立檔案並在檔案中宣告類

class cstudent

建立檔案並在檔案中定義setinfo和display成員函式的實現。

最後在中使用該類

cstudent stud,*pstud;

pstud=new cstudent;

pstud->setinfo(0,」bill」);

(*pstud).display();

pstud->display();

delete pstud;

2、定義乙個類,類中分別有private、protected、public型別的成員資料和成員函式,並在成員函式內部和類的外部測試各種成員資料和成員函式的可訪問性。

物件的成員資料和成員函式的儲存。物件的成員資料分開存放,但是同乙個類的所有物件共享成員函式**區。成員函式通過this指標區別不同物件的成員資料。

類和結構體的異同

結構體的成員預設是public的,類的成員預設是private的;

this指標

在每乙個成員函式中都包含乙個指向物件的首位址的指標,稱為this指標,即指向物件本身的指標。

#include ""

#include

using namespace std;

class cb;

class ca

;class cb

cb &getself()

void print2(ca *pobj2);

};void ca::func(cb *ptest1)

void cb::print2(ca *pobj2)

void main()

建構函式是類的一種特殊成員函式,它在類例項化物件時自動執行,建構函式的名字必須與類名同名,它不具有任何型別,不返回任何值,即使是void也不允許。

class ctest

/*預設建構函式,如果定義類時未指定任何建構函式,

系統將自動生成不帶引數的預設建構函式

*/ctest()

/*帶乙個引數的可用於型別轉換的建構函式

*/ctest(int i1

/*帶引數的建構函式

*/ctest(int i1,int i2)

/*拷貝建構函式,如果此函式不定義,系統將生成預設拷貝建構函式功能,

預設拷貝建構函式的行為是:用傳入的物件引數的成員初始化正要建立的物件的相應成員

*/ctest(const ctest &otest)

/*析構函式,乙個類中只能有乙個析構函式,如果使用者沒有定義析構函式,

系統會自動未類生成乙個預設的析構函式

*/~ctest()

};int main(int argc, char* ar**)

練習,寫程式測試上例中每條語句物件生成的個數.

通常在類的建構函式中初始化類的成員資料,除此外還可以通過初始化成員列表的方式初始化資料成員。初始化成員列表的形式為:

建構函式名(構造函式引數列表):成員1(引數列表1),成員2(引數列表2),,,成員n(參數列n)

C第10章類和物件例子

例10.4 定義並測試長方形類crect,長方形是由左上角座標 left,top 和右下角座標 right,bottom 組成。include include class crect 定義長方形類 void print void void crect setcoord int l,int t,int...

c中的類物件指標 物件引用 this指標

c 中的類物件指標 物件引用 this指標.txt生活是一張千瘡百孔的網,它把所有激情的水都漏光了。寂寞就是你說話時沒人在聽,有人在聽時你卻沒話說了!指向類的成員的指標 在c 中,可以說明指向類的資料成員和成員函式的指標。指向資料成員的指標格式如下 型別說明符 類名 指標名 指向成員函式的指標格式如...

實驗五類和物件

一 實驗目的 通過例項領悟物件導向程式設計思想。二 實驗要求 1 熟練掌握類的定義,域和方法的概念,理解類與類之間的關係。2 掌握構造方法與物件的建立和物件的初步使用。3 比較面向過程和物件導向兩類 領悟物件導向程式設計思想。4 分析程式的執行結果並記錄所編寫的程式 執行結果以及出錯時的處理過程。三...