類是建立物件的模板,乙個類可以建立多個物件,每個物件都是類型別的乙個變數;建立物件的過程也叫類的例項化。每個物件都是類的乙個具體例項(instance),擁有類的成員變數和成員函式。
乙個簡單的類的定義:
classstudent
};
class
是 c++ 中新增的關鍵字,專門用來定義類。student
是類的名稱;類名的首字母一般大寫,以和其他的識別符號區分開。內部是類所包含的成員變數和成員函式,它們統稱為類的成員(member);由
包圍起來的部分有時也稱為類體,和函式體的概念類似。
注意:在類定義的最後有乙個分號;
,它是類定義的一部分,表示類定義結束了,不能省略。
類只是乙個模板(template),編譯後不占用記憶體空間,所以在定義類時不能對成員變數進行初始化,因為沒有地方儲存資料。只有在建立物件以後才會給成員變數分配記憶體,這個時候就可以賦值了。
建立物件的方式如下:
#include usingnamespace
std;
//類通常定義在函式外面
class
student
};int
main()
執行結果:
小明的年齡是15,成績是92.5
stu 是乙個物件,占用記憶體空間,因此可以對它的成員變數賦值,也可以讀取它的成員變數。類通常定義在函式外面,當然也可以定義在函式內部,不過很少這樣使用。
c語言中經典的指標在 c++ 中仍然廣泛使用,尤其是指向物件的指標,沒有它就不能實現某些功能。
student stu;student *pstu = &stu;
pstu 是乙個指標,它指向 student 型別的資料,也就是通過 student 建立出來的物件。
同樣,也可以在堆區建立物件,此時就要用到new關鍵字:
student *pstu = new student;
如:
#include usingnamespace
std;
class
student
};int
main()
注意:在棧上建立出來的物件都有乙個名字,比如 stu,因此使用指標指向它不是必須的。但是通過 new 建立出來的物件就不一樣了,它在堆上分配記憶體,沒有名字,只能得到乙個指向它的指標,所以必須使用乙個指標變數來接收這個指標,否則以後再也無法找到這個物件了,更沒有辦法使用它。
也就是說,使用 new 在堆上建立出來的物件是匿名的,沒法直接使用,必須要用乙個指標指向它,再借助指標來訪問它的成員變數或成員函式。
C 類和物件(3)
初始化列表是成員或類定義的地方。初始化列 式 class date private int year int month int day 需要注意的幾點 每個成員變數在初始化列表中只能出現一次 初始化只能初始化一次 類中包含以下成員時,必須放在初始化列表的位置進行初始化 class a privat...
c 基礎 類和物件
封裝 繼承 多型 所謂封裝就是使用三個訪問限定符來限制成員變數和成員方法的讀取許可權 1.public 修飾,任意位置可見 2.private 修飾,本類中可見 3.protected 修飾,在本類中和子類類中可見 在這裡說明,成員方法在類內實現,系統會預設其為inline函式,建議以inline函...
C 語言 類和物件
類和物件的初步認識 1.類是物件的抽象,而物件是類的具體例項 類是抽象的,不占用記憶體 而物件是具體的,占用儲存空間 2.面向過程與物件導向 c語言是面向過程的,關注的是過程中的資料與方法 c 語言是物件導向的,關注的是物件的屬性與功能 類的引入 在c 中,結構體內不僅可以定義變數,還可以定義函式 ...