當前位置:才華齋>計算機>C語言>

C++類的成員變數和成員函式

C語言 閱讀(3.23W)

類可以看做是一種資料型別,它類似於普通的資料型別,但是又有別於普通的資料型別。類這種資料型別是一個包含成員變數和成員函式的集合。下面是小編為大家整理的C++類的成員變數和成員函式,歡迎參考~

C++類的成員變數和成員函式

類的成員變數和普通變數一樣,也有資料型別和名稱,佔用固定長度的記憶體。但是,在定義類的時候不能對成員變數賦值,因為類只是一種資料型別或者說是一種模板,本身不佔用記憶體空間,而變數的值則需要記憶體來儲存。

類的成員函式也和普通函式一樣,都有返回值和引數列表,它與一般函式的'區別是:成員函式是一個類的成員,出現在類體中,它的作用範圍由類來決定;而普通函式是獨立的,作用範圍是全域性的,或位於某個名稱空間內。

  上節我們在示例中給出了 Student 類的定義,如下所示:

class Student{

public:

//成員變數

char *name;

int age;

float score;

//成員函式

void say(){

cout<<name<<"的年齡是"<<age<<",成績是"<<score<<endl;

}

};

這段程式碼在類體中定義了成員函式。你也可以只在類體中宣告函式,而將函式定義放在類體外面,如下圖所示:

class Student{

public:

//成員變數

char *name;

int age;

float score;

//成員函式

void say(); //函式宣告

};

//函式定義

void Student::say(){

cout<<name<<"的年齡是"<<age<<",成績是"<<score<<endl;

}

在類體中直接定義函式時,不需要在函式名前面加上類名,因為函式屬於哪一個類是不言而喻的。

但當成員函式定義在類外時,就必須在函式名前面加上類名予以限定。::被稱為域解析符(也稱作用域運算子或作用域限定符),用來連線類名和函式名,指明當前函式屬於哪個類。

成員函式必須先在類體中作原型宣告,然後在類外定義,也就是說類體的位置應在函式定義之前。

  inline 成員函式

在類體中和類體外定義成員函式是有區別的:在類體中定義的成員函式會自動成為行內函數,在類體外定義的不會。當然,在類體內部定義的函式也可以加 inline 關鍵字,但這是多餘的,因為類體內部定義的函式預設就是行內函數。

行內函數一般不是我們所期望的,它會將函式呼叫處用函式體替代,所以我建議在類體內部對成員函式作宣告,而在類體外部進行定義,這是一種良好的程式設計習慣,實際開發中大家也是這樣做的。

當然,如果你的函式比較短小,希望定義為行內函數,那也沒有什麼不妥的。