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;
}
沒有留言:
張貼留言