1. 程式人生 > >C++類和物件概念

C++類和物件概念

C++是一門面向物件的程式語言,理解C++,首先要理解類與物件這兩個概念。

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++中,通過類名就可以建立物件,即將圖紙生產成零件,這個過程叫做

類的例項化,因此也稱物件是類的一個例項

注意:類只是一張圖紙,起到說明的作用,不佔用記憶體空間;物件才是具體的零件,要有地方來存放,才會佔用記憶體空間。
類所包含的變數和函式也有了新的的稱呼,變數被稱為屬性(通常也稱成員變數),函式被稱為方法;屬性和方法統稱為類的成員。