C++類與對象入門:定義一個簡單的類

類與對象的概念

想象一下,你想造一個“機器人”來幫你處理日常事務。這個機器人需要有自己的“身體特徵”(比如名字、電量)和“行爲能力”(比如走路、說話)。在編程裏,我們把這些“身體特徵”稱爲成員變量(屬性),把“行爲能力”稱爲成員函數(方法)。而“機器人”本身,就是我們要討論的“類”的一個“實例”——也就是對象

簡單說,是對一類事物的抽象描述,定義了這個事物有什麼(屬性)和能做什麼(行爲);對象是根據這個描述具體創建出來的“個體”。在C++中,我們用class關鍵字來定義類,然後通過這個類創建對象,使用類裏的成員變量和成員函數。

C++中類的定義語法

定義一個類的基本格式如下:

class 類名 {
    // 成員變量(屬性):描述對象的特徵,通常設爲private(私有),保證安全性
private:
    數據類型 變量名1;
    數據類型 變量名2;
    // ... 其他成員變量

    // 成員函數(方法):描述對象的行爲,通常設爲public(公有),供外部調用
public:
    // 成員函數的聲明,比如設置變量、獲取變量、執行行爲等
    返回類型 函數名1(參數列表) {
        // 函數體:具體實現行爲
    }
    返回類型 函數名2(參數列表) {
        // ...
    }
    // ... 其他成員函數
};
  • class關鍵字:用於聲明一個類。
  • privatepublic:是訪問權限修飾符。private成員只能在類內部被訪問,public成員可以被類外部的代碼直接訪問。
  • 分號:類定義的末尾必須有分號,這是語法要求。

定義一個簡單的“學生”類

我們來定義一個“學生”類,讓它包含基本的學生信息和行爲。

步驟1:定義類的結構

假設學生有兩個核心屬性:姓名(name)和學號(id),以及兩個行爲:學習(study)和自我介紹(introduce)。

class Student {
private:  // 私有成員:外部不能直接訪問,保證數據安全
    string name;  // 姓名(字符串類型)
    int id;       // 學號(整數類型)

public:   // 公有成員:外部可以直接調用的函數
    // 設置姓名的函數(參數:要設置的姓名)
    void setName(string n) {
        name = n;  // 將參數賦值給成員變量name
    }

    // 獲取姓名的函數(返回值:當前姓名)
    string getName() {
        return name;  // 返回成員變量name的值
    }

    // 設置學號的函數(參數:要設置的學號)
    void setId(int i) {
        id = i;  // 將參數賦值給成員變量id
    }

    // 自我介紹函數:輸出學生的姓名和學號
    void introduce() {
        cout << "大家好!我叫" << name << ",學號是" << id << "。" << endl;
    }

    // 學習函數:輸出學生正在學習的信息
    void study() {
        cout << name << "正在努力學習C++!" << endl;
    }
};

創建對象並使用類

定義完類後,我們需要創建對象(即具體的學生實例),並通過對象調用類的成員函數。

步驟2:在main函數中使用Student類

#include <iostream>
#include <string>  // 因爲用了string類型,需要包含這個頭文件
using namespace std;  // 簡化代碼,不用寫std::

int main() {
    // 1. 創建一個Student類的對象,命名爲stu1
    Student stu1;

    // 2. 設置學生的姓名和學號(通過public成員函數)
    stu1.setName("張三");  // 調用setName函數,傳入姓名
    stu1.setId(2023001);  // 調用setId函數,傳入學號

    // 3. 調用成員函數
    stu1.introduce();  // 輸出自我介紹
    stu1.study();      // 輸出學習信息

    return 0;
}

運行結果

編譯並運行上述代碼,你會看到輸出:

大家好!我叫張三,學號是2023001。
張三正在努力學習C++!

關鍵知識點總結

  1. 類的定義:用class關鍵字,包含私有成員變量(private)和公有成員函數(public)。
  2. 對象創建類名 對象名;(如Student stu1;)。
  3. 成員訪問:對象通過對象名.成員函數名()調用公有函數(如stu1.study()),成員變量通過set/get函數間接訪問(如stu1.setName())。
  4. 封裝思想:成員變量設爲private,僅通過public函數訪問,避免外部直接修改數據,保證數據安全性。

通過這個簡單的例子,你已經掌握了C++類與對象的基礎:如何定義類、創建對象、調用成員函數。後續可以嘗試擴展類的功能(比如添加年齡、成績等屬性,或更多行爲),深入學習封裝、繼承等概念。

小夜