類與物件 總結

2021-09-18 03:17:18 字數 2651 閱讀 2785

類簡單來說是使用者自己定義的資料型別。物件是用類這個資料型別定義的乙個變數。

類的基本思想是資料抽象和封裝。

依賴介面和實現分離程式設計的技術。

抽象資料型別包括資料以及操作兩部分,即成員函式以及資料成員。

類的定義:

class

};

private:一般是私有資料成員,私有函式較為少見。私有資料成員只能由私有函式或者友元函式訪問,確保了函式的封裝性。

成員函式在宣告時,可以在結構體(類class內)宣告,但是有時候函式太長,宣告在類裡面太難看,就只能宣告在類之外,這時候就不能只寫成普通函式的樣子了,因為這樣會被定義成乙個普通函式,就不能使用私有成員了。

要想將資料成員定義在類外,可以用:類名::成員函式()的形式。

將資料和操作綁在一起,加上訪問控制,稱作封裝。外部主要通過介面訪問 物件中的資料,稱作向物件傳送資訊。

private、public、porotected限定符。前兩個比較容易理解,寫**也比較常用,最後一種現在還不常使用,主要用於繼承中(暫時還沒學)。

每個成員函式都有的隱藏引數:位址。指向接收訊息的物件,成為this指標。

他是乙個常量,含有實施呼叫的物件的位址。既不能改變他的值,也不能取他的位址。

this指標常用於:

區分與變數名重名的資料成員

返回當前物件

獲取當前物件的位址

使用樣例:

class x 

x add(const x& a)

void copy(const x& a)

};

進行訪問修改私有成員的函式稱為訪問器和修改器,一般將名稱設為:set***、get***。

使用時在函式前面加上friend就可以。在類外就可以使用私有函式了。

但是為了封裝性,一般不用友元,我們一般只有在重鑄運算子的時候使用友元。

建構函式對物件進行初始化工作,構析函式是對物件進行銷毀。

建構函式和構析函式都是以類名為名稱,沒有返回值。構析函式前面加個波浪號。

建構函式必須寫兩個,乙個是有參的建構函式,乙個是無參的建構函式。因為我們在定義函式時,會將其設定為普通的資料模式,這就會呼叫無參的建構函式。

構析函式會將物件的生命週期結束,並且函式自動呼叫。可有可無。

在資料成員宣告前加const可以將其限定為常量,在建構函式的初始化列表中進行初始化。

將乙個成員函式宣告為const,表明這個成員函式不會修改物件的資料成員。跟普通的const函式定義的不同性在於,他的const並不放在最前面:

返回型別  成員函式名(參數列) const ;

宣告:

返回型別  成員函式名(參數列)const;

常函式與常物件有著複雜的關係。

常物件只能被常函式呼叫,不能被非常函式呼叫(防止非常函式改變常物件的值)

常函式可以呼叫非常物件,也可以呼叫常物件。

static資料成員屬於整個類,不屬於某個物件。所以只是在類作用域中起作用,不會與全域性域中的名字衝突。並且這個類的所有物件共同訪問,雖然如此,看起來特別的公有化,但是依然可以實現資訊隱藏。

典型的使用樣例是物件計數器,用來統計有多少個物件。使用時可以在建構函式時count++,在析構函式裡面count--。

static資料成員的定義:

static  int  obj;

資料成員不屬於某個特定的物件,因而不能在建構函式中初始化,必須在類外一定義完類就初始化。

static  const  int  a=2;靜態常量資料成員則必須在類中進行初始化。

訪問:

(1)成員訪問運算子"."、"->"。

(2)類名限定的靜態成員名:類名::count;

static成員函式:

static  int  getcount();

靜態成員函式只能訪問static型別資料成員。

#include #include #include #includeusing namespace std;

struct cjob;

class student

student(string na,string xh,string zyxx):name(na),zy(zyxx),xuehao(xh)

void input();

friend bool cmp(student d1,student d2);

void jisuan();

void print ();

string getname()

string gatxuehao()

string getzy()

int getpm()

void setpm(int no)

};void student::input()

}void student::jisuan()

jd=sum1/sum;

}void student::print ()

cout}int main()

sort(ob,ob+n,cmp);

for(int i=0;ireturn 0;

}

類與物件總結

一般的資訊管理系統多是需要兩種類 資料類和操作類 資料類 提供實際所需的各種資料 操作類 實現實際操作功能 多為增刪查改 乙個成員函式實現乙個具體功能 資訊管理系統開發基本步驟 1思考分析系統所需各種資料,並設計資料類 前提 2了解系統要實現各種功能,並設計操作類 3除錯程式 滾雪球法,一步一調。最...

類與物件總結

一 類的定義。具有相同性質和功能的東西構成的集合稱為類。類是抽象的,當屬性賦給具體值,方法有具體內容時,才能成為物件,物件是類中可操作的具體化資料。類定義的一般形式 class 類名 public 公有段資料成員和成員函式 類內類外均可見 protected 保護段資料成員和成員函式 只在類內和該類...

類與物件初學總結

內建資料型別 int float char.自定義型別 類 class clock 類名 物件 注意 物件所佔據的記憶體空間只是用於存放資料成員,函式成員不在每乙個物件中存在副本,每個函式的 在記憶體中只佔據乙份空間。關鍵字 public和private用來指定成員的不同訪問許可權 公有型別成員定義...