C++類和物件概念
阿新 • • 發佈:2019-01-02
C++是一門面向物件的程式語言,理解C++,首先要理解類與物件這兩個概念。
小明的年齡是 15,成績是 92.500000
C++中的類也是一種構造資料型別;通過類定義出來的變數也有特定的稱呼,叫做“物件”。個人認為類就是相當於之前的struct,但是這裡面不同的就是這裡面的類定義的範圍更廣,可以定義函式 ,public 是變數的許可權性,下面會有介紹,例如:
執行結果與上例相同。
class 是C++中的關鍵字,用來宣告一個類。public 也是一個關鍵字,表示後面的成員都是公有的;所謂公有,就是通過當前類建立的物件都可以訪問這些成員。除了 public 還有 private,它表示私有的,也就是物件都不能訪問這些成員。但是個人並不理解private表示私有連物件也不能訪問的意思。
C++中的類可以看做C語言中結構體(Struct)的升級版。結構體是一種構造資料型別,可以包含若干成員(變數),每個成員的資料型別可以不一樣;可以通過結構體來定義結構體變數,每個變數擁有相同的性質。這是C語言中想要呼叫同一個人資訊的方法,例如:
執行結果:#include <stdio.h> int main(){ // 定義結構體 Student struct Student{ // 結構體包含的變數 char *name; int age; float score; }; // 通過結構體來定義變數 struct Student stu1; // 操作結構體的成員 stu1.name = "小明"; stu1.age = 15; stu1.score = 92.5; printf("%s的年齡是 %d,成績是 %f\n", stu1.name, stu1.age, stu1.score); return 0; }
小明的年齡是 15,成績是 92.500000
C++中的類也是一種構造資料型別;通過類定義出來的變數也有特定的稱呼,叫做“物件”。個人認為類就是相當於之前的struct,但是這裡面不同的就是這裡面的類定義的範圍更廣,可以定義函式 ,public 是變數的許可權性,下面會有介紹,例如:
#include <stdio.h> int main(){ //通過class關鍵字類定義類 class Student{ public: //類包含的變數 char *name; int age; float score; public: //類包含的函式 void say(){ printf("%s的年齡是 %d,成績是 %f\n", name, age, score); } }; //通過類來定義變數,即建立物件 class Student stu1; //也可以省略關鍵字class //操作類的成員 stu1.name = "小明"; stu1.age = 15; stu1.score = 92.5f; stu1.say(); return 0; }
執行結果與上例相同。
class 是C++中的關鍵字,用來宣告一個類。public 也是一個關鍵字,表示後面的成員都是公有的;所謂公有,就是通過當前類建立的物件都可以訪問這些成員。除了 public 還有 private,它表示私有的,也就是物件都不能訪問這些成員。但是個人並不理解private表示私有連物件也不能訪問的意思。
在C語言中,通過結構體名完成結構體變數的定義;在C++中,通過類名完成物件的定義。結構體變數和物件被定義後會立即分配記憶體空間。
可以將類比喻成圖紙,物件比喻成零件,圖紙說明了零件的引數及其承擔的任務;一張圖紙可以生產出具有相同性質的零件,不同圖紙可以生產不同型別的零件。
在C++中,通過類名就可以建立物件,即將圖紙生產成零件,這個過程叫做 類的例項化,因此也稱物件是類的一個例項。
注意:類只是一張圖紙,起到說明的作用,不佔用記憶體空間;物件才是具體的零件,要有地方來存放,才會佔用記憶體空間。類所包含的變數和函式也有了新的的稱呼,變數被稱為屬性(通常也稱成員變數),函式被稱為方法;屬性和方法統稱為類的成員。