C 類的成員變數和成員函式的問題

2021-09-08 01:58:55 字數 1017 閱讀 2448

類是一種資料型別,該型別類似於普通的資料型別,但是又有別於普通的資料型別。類這種資料型別是乙個包含成員變數和成員函式的乙個集合。下面是student類的定義。

[例1] 類可以包含成員變數和成員函式:

class student

;本例宣告了類student,並且在student類中宣告了四個成員變數:name、id_num、age和***。這四個成員變數用於描述student特性。除此之外我們還在類中定宣告了兩個函式,set_age函式和get_age函式,這兩個函式是student類的成員函式,這兩個函式只給出了宣告,未給出定義。

有兩種方法可以給出成員函式的定義:

在類內部進行函式的宣告和定義,此種方式我們成為inline,也即內聯定義。inline是c++關鍵字,專門用於表示內聯;

在類內進行函式宣告,在類外部進行函式定義。

下面我們分別給出兩種情況的示例。

[例2] 在類內部進行函式的宣告和定義:

class student

int get_age()

};在本例中,兩個成員函式均是在類宣告內部進行宣告和定義的,因此這兩個函式是inline型別的。

內聯函式可以通知編譯器在編譯階段用成員函式set_age和get_age的函式體替換掉所有呼叫該函式的**,這樣替換後的**將不會再出現對這個函式的呼叫的**。通過直接的替換可以在一定程度上提高程式執行效率,通常只是用於一些簡短函式。

[例3] 在類內部宣告函式,在類外部定義函式:

class student

;//在類外部定義set_age函式

void student::set_age(int a)

//在類外部定義get_age函式

int student::get_age()const

本例中set_age函式和get_age函式在類宣告內部僅有宣告部分,而無定義部分,其函式體在類宣告之外定義。本例中定義函式採用了域解析符 ::。

在類內宣告函式,如果在函式宣告時使用inline關鍵字,如例4所示,則可以將類內宣告類外定義的函式強制轉換為內聯函式。

C 類的靜態成員變數與靜態成員函式

什麼是靜態成員變數?又為什麼出現?在c語言中稱之為靜態變數,因為c 中增加了類的概念,所以稱之為靜態成員變數。宣告方式 在一般變數的宣告前加上static static int char a 作用 static 修飾的變數在它所在的函式生存期結束後在該函式體內部依然儲存其原有的值 看個小例子 inc...

C 類的靜態成員變數和靜態成員函式

class person static int m age 加入static 就是靜態成員變數,會共享資料 靜態成員變數,在類內宣告,類外進行初始化 int person.m age 0 類外初始化實現 對屬性進行修改 void test01 private stactic int m other ...

C 類的靜態成員變數和靜態成員函式

2.類的靜態成員函式 3.參考 1.1 普通成員變數的回顧 1.2 靜態成員變數 有物件共享類的靜態成員變數 小問題 類的private 靜態成員變數目前只能由具體物件的public成員函式訪問,這就依賴類物件,可不可以不依賴物件就可以訪問private靜態成員變數呢?2.1 靜態成員函式 2.2 ...