AdSense

網頁

2022/8/15

C++ this關鍵字

C++的this為指向物件本身的pointer。


例如下面類別Car的建構式Car(string model, int speed)及修改函式(SetSpeed(int speed))將傳入參數分派給this指標指向的物件本身的成員。當參數名稱與屬性名稱相同時可用this獲取物件本身的成員來與參數區別。而存取函式(GetModel()GetSpeed())中回傳的屬性雖然沒有this,但實際上編譯器會隱含的加上this->來取得屬性。

main.cpp

#include <iostream>
#include <string>
using namespace std;

class Car {
    private:
        // 屬性 attributes
        string model;
        int speed;

    public:
        // 建構式 constructor
        Car(string model, int speed) {
            this->model = model;
            this->speed = speed;
        }

        // 方法 methods
        string GetModel() { return model; }
        int GetSpeed() { return speed; }
        void SetSpeed(int speed) { this->speed = speed; }
};

int main() {
    Car car = {"MAZDA CX-30", 0};
    car.SetSpeed(60);

    cout << car.GetModel() << endl; // MAZDA CX-30
    cout << car.GetSpeed() << endl; // 60

    return 0;
}


沒有留言:

AdSense