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 關鍵字,但這是多餘的,因為類體內部定義的函式預設就是行內函數。
行內函數一般不是我們所期望的,它會將函式呼叫處用函式體替代,所以我建議在類體內部對成員函式作宣告,而在類體外部進行定義,這是一種良好的程式設計習慣,實際開發中大家也是這樣做的。
當然,如果你的函式比較短小,希望定義為行內函數,那也沒有什麼不妥的。
-
2017計算機二級C語言精選練習題及答案
很多時候計算機等級證書是我們找工作的敲門磚,因此,計算機等級證書也是有一定的含金量的。以下是小編為大家整理的2017計算機二級C語言精選練習題及答案,希望對大家有幫助!(1)在不同網路結點的對等層之間的通訊需要下列哪一項協議?A)模組介面B)對等層協議C)電訊號...
-
如何使用C語言求N的階乘
使用C語言求N的階乘的方法是很多小夥伴都想知道的,下面小編給大家介紹如何使用C語言求N的階乘,歡迎閱讀!如何使用C語言求N的階乘用遞迴法求N的.階乘程式呼叫自身稱為遞迴(recursion).它通常把一個大型複雜的問題層層轉化為一個與原問題相似的規模較小的問題來求...
-
C語言入門知識:常量
導語:在程式執行中,其值不能被改變的量稱為常量。下面是常量相關知識,歡迎閱讀:常量有5種類型:整型常量、實型常量、字元常量、字串常量和符號常量。(一)數值轉換數字的四種表現形式:①:二進位制:所有數字由0,1構成,逢二進一,二進位制數中不會出現2.。例:110101②:八進位制:以數...
-
C語言新人常見問題與錯誤
不知不覺,學習C語言也快一年了。雖然有C語言課,但是老師完全讓我們自己看書,在自學的過程中,和周圍同學交流中,以及後來在CSDN,BCCN,百度知道看帖回帖中,也看到許多C語言新人常遇到的問題與常犯的錯誤。不妨看看吧。以下僅供參考!對於完整的修正後的程式都在code::block...