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種有限的應用情景 定義指向...