C++ 速查手冊

9.7 - this 指標

成員函數中可以直接存取其他成員,例如以下的 do_something()ab 為兩個資料成員

int do_something() {
    return a + b;
}

這種寫法指是種簡便的方式,其實編譯器會自動填入 this 指標 (pointer) ,如下

int do_something() {
    return this->a + this->b;
}

this 指標用來存取類別中的成員,明確使用 this 指標也不必擔心成員函數的參數名稱是否與變數成員相同,舉例如下

#include <iostream>
  
class Demo {
public:
    Demo(int a, int b) {
        this->a = a;
        this->b = b;
    }
    
    int do_something() {
        return this->a + this->b;
    }
    
private:
    int a;
    int b;
};

int main() {
    Demo d(22, 60);
    std::cout << d.do_something() << std::endl;
    
    return 0;
}

/* 《程式語言教學誌》的範例程式
   http://kaiching.org/
   檔名:u0907.cpp
   功能:示範 C++ 的類別
   作者:張凱慶*/

建構函數 Demo() 的參數 ab 與資料成員 ab 有相同的名稱,因為明確使用 this 指標,所以可以區分哪個 ab 是參數,另一個 ab 則是資料成員

Demo(int a, int b) {
    this->a = a;
    this->b = b;
}

編譯執行,結果如下

$ g++ u0907.cpp
$ ./a.out
82
$

相關教學影片

上一頁 9.6 - 存取函數與修改函數
回 C++ 速查手冊首頁
下一頁 9.8 - friend 成員
回 C++ 教材
回程式語言教材首頁