1. 程式人生 > >【C++】C++類的定義和物件的建立

【C++】C++類的定義和物件的建立

類是建立物件的模板,一個類可以建立多個物件,每個物件都是類型別的一個變數;建立物件的過程也叫類的例項化。每個物件都是類的一個具體例項(Instance),擁有類的成員變數和成員函式。

在面向物件的程式語言中,經常把函式(Function)稱為方法(Method)。

class是 C++ 中新增的關鍵字,專門用來定義類。

類只是一個模板(Template),編譯後不佔用記憶體空間,所以在定義類時不能對成員變數進行初始化,因為沒有地方儲存資料。只有在建立物件以後才會給成員變數分配記憶體,這個時候就可以賦值了。

Student是類名,liLei是物件名。這和使用基本型別定義變數的形式類似:

int a; //定義整型變數

從這個角度考慮,我們可以把 Student 看做一種新的資料型別,把 liLei 看做一個變數。

除了建立單個物件,還可以建立物件陣列:

Student allStu[100];

該語句建立了一個 allStu 陣列,它擁有100個元素,每個元素都是 Student 型別的物件。

也就是說,使用 new 在堆上創建出來的物件是匿名的,沒法直接使用,必須要用一個指標指向它,再借助指標來訪問它的成員變數或成員函式。

棧記憶體是程式自動管理的,不能使用 delete 刪除在棧上建立的物件;堆記憶體由程式設計師管理,物件使用完畢後可以通過 delete 刪除。

代賣示例:

#include <iostream>
using namespace std;

class Student {
public:
	const char *name;
	int age;
	float score;

	void say() {
		cout << name << "的年齡是" << age << ",成績是" << score << endl;
	}
};

int main() {
	Student *pStu = new Student;
	pStu->name = "小明";
	pStu->age = 15;
	pStu->score = 92.5f;
	pStu->say();
	delete pStu;  //刪除物件

	getchar();
	return 0;
}