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 關鍵字,但這是多餘的,因爲類體內部定義的函數默認就是內聯函數。
內聯函數一般不是我們所期望的,它會將函數調用處用函數體替代,所以我建議在類體內部對成員函數作聲明,而在類體外部進行定義,這是一種良好的編程習慣,實際開發中大家也是這樣做的。
當然,如果你的函數比較短小,希望定義爲內聯函數,那也沒有什麼不妥的。
相關文章
-
如何訪問類的成員變量和方法
在Java應用程序中,經常需要訪問類的成員變量和方法,以實現程序的功能,請問應該如何訪問類的成員變量和方法?在Java中通過類的實例(即對象)點(.)運算符來訪問類的成員變量和方法,今天本站小編爲大家整理的如何訪問類的成員 -
c語言隨機數生成函數和時間函數
c語言隨機數生成函數和時間函數是如何生成的呢?小編爲大家揭祕來了。更多內容請關注應屆畢業生考試網! 一 隨機數生成函數(rand,srand)1)首先,隨機數在stdlib.h定義了一個RAND_MAX的宏#define RAND_MAX 0x7fff,也就 -
C語言中根據成員變量來排序的方法
類的成員變量和普通變量一樣,也有數據類型和名稱,佔用固定長度的內存空間。但是,在定義類的時候不能對成員變量賦值,因爲類只是一種數據類型,本身不佔用內存空間,而變量的值則需要內存來存儲。下面是小編爲大家搜索整理的C -
C語言中根據成員變量來排序的兩種方法
C語言中根據成員變量來排序有兩種方法,分別是什麼方法呢,下面小編爲你介紹一下吧!第一種,最常用的是創建一箇中間變量來循環交換它們的值:T a = ...;T b = ...;.T tmp = a; a = b; a = tmp;我們稱這種策略p99_swap1。在這 -
2016年計算機二級C++複習資料:類對象數組和靜態成員
當仔細品讀一部作品後,大家一定都收穫不少,讓我們好好寫份讀後感,把你的收穫和感想記錄下來吧。是不是無從下筆、沒有頭緒?以下是小編收集整理的《簡愛》讀後感,歡迎閱讀與收藏。《簡愛》讀後感 篇1看完了簡愛,我是怎樣的一 -
C語言變量和數據類型
計算機要處理的數據是以二進制的形式存放在內存中的,那麼大家知道C語言變量和數據類型是怎樣的呢?下面一起來看看! 變量(Variable)現實生活中我們會找一個小箱子來存放物品,一來顯得不那麼凌亂,二來方便以後找到。計算 -
JavaScript的變量和數據類型
JavaScript數據類型:編程語言的最根本的特徵之一是一組它支持的數據類型。這些是可被表示和操縱的編程語言的值的類型。JavaScript允許有三個基本數據類型:數字如. 123, 120.50 等. 字符串如 "This text string" 等. 布 -
c++靜態局部變量和靜態函數範例
千磨萬擊還堅勁,任爾東西南北風。——鄭板橋工欲善其事,必先利其器。——孔子光陰似箭,日月如梭。——《增廣賢文》博觀而約取,厚積而薄發。——蘇軾讀書百遍,其義自現。—& -
C語言函數指針變量
導語:在C語言中規定,一個函數總是佔用一段連續的內存區, 而函數名就是該函數所佔內存區的首地址。 這就是函數指針變量。下面是相關介紹,僅供參考!在C語言中規定,一個函數總是佔用一段連續的內存區, 而函數名就是該函數所佔 -
C語言中指針變量作爲函數參數詳解
在C語言中,函數的參數不僅可以是整數、小數、字符等具體的數據,還可以是指向它們的指針。用指針變量作函數參數可以將函數外部的地址傳遞到函數內部,使得在函數內部可以操作函數外部的數據,並且這些數據不會隨着函數的結