C 學習之類

2021-09-30 15:08:57 字數 1814 閱讀 1543

c++提供了一種類class機制來定義新的資料型別,

類不僅可以定義了資料的復合,還可以定義該復合資料的操作。

一、類的定義

類機制定義的類class,是一種型別,其定義與struct定義類似,只是在定義體中新增了操作的方法,

如此是一段定義類以及對該類進行操作的**:

#include #include using namespace std;

class date

;void date::set(int y, int m, int d)

bool date::isleapyear()

void date::print()

int main()

二、類的成員函式

在定義類時,類的成員函式,可以再類定義體外定義,也可以在類定義體類定義。在類定義中包含的成員函式,就預設有內聯的性質。

但是對於成員函式是否安排為內聯的成員函式,要看函式是否足夠簡單,對於不符合內聯條件的成員函式,呼叫開銷還是不會免去的。所以,應盡量將成員函式的定義寫到類定義的外部去,對於短小的、不超過三行的成員函式定義放在類定義中是適合的。

三、類的訪問

一種是通過點號「.」訪問,如下所示:

classname class_object;

class_object.member;

還有一種是通過「->」訪問,該方式主要是用於對物件指標進行訪問,如下所示:

classname *class_object;

class_object->member;

如下是一段例項**:

int main()

四、常成員函式

對於類定義中的一些成員函式,如果只對物件進行讀操作,則該成員函式可以設計為常(const)成員函式。設計為常成員函式的好處是,讓使用者一目了然地知道該成員函式不會改變物件值。

對於成員函式來,能夠成為常成員函式的,應盡量寫成常成員函式的形式。

常函式函式的宣告和定義在形式上必須是一致的。即在函式形參列表的右括號後面加上const。

#include #include using namespace std;

class date

;void date::set(int y, int m, int d)

bool date::isleapyear()const

void date::print()const

int main()

五、過載成員函式

成員函式與普通函式一樣,可以過載,對過載的識別和使用規則與普通函式也是相同。

成員函式過載定義如下:

指函式名相同,但是它的參數列列個數,順序或型別不同,但是不能靠返回型別來判斷。

1)相同的範圍(在同乙個作用域中)

2)函式名相同

3)引數不同

4)virtual關鍵字可有可無

5)返回型別可以不同

如下是過載函式的例項**:

#include #include using namespace std;

class date

;void date::set(int y, int m, int d)

void date::set(string& s)

bool date::isleapyear()const

void date::print()const

int main()

學習自《c++程式設計教程》

c 學習記錄之類

c 是物件導向的程式語言 面對物件就是 把資料及對資料的操作方法放在一起,作為乙個相互依存的整體 物件。對同類物件抽象出其共性,形成類。類中的大多 數資料,只能用本類的方法進行處理。類通過乙個簡單的外部介面與外界發生關係,物件與物件之間通過訊息進行通訊。程式流程由使用者在使用中決定。類的宣告 cla...

C 學習筆記之 類 物件

類是描述具有相同特徵和行為的抽象。物件是類的例項。類的作用就是分類!class關鍵字 class 類名 1 字段 類的共有屬性class car比如以上的brand,price,displacement 簡單的應用 using system namespace lesson12 class main...

C 學習筆記之類型別

兩個類即使成員完全相同,但名字不同,不屬於同乙個類 class a class b a obj1 b obj2 obj1 error,obj1和obj2型別不同 class a 前向宣告 對乙個類只宣告不定義 不完全型別 乙個類在宣告之後定義之前為不完全型別 不完全型別的3種有限的應用情景 定義指向...