クラスのメンバ関数呼び出しの際には、
内部でそのクラスオブジェクトのポインタが渡されています。
このおかげで、メンバ関数内からクラスのメンバ変数に
アクセスできる仕掛けになっています。
thisポインタ無しでの記述例
ファイル名:hito.h
class hito {
public:
int age;
int sinchou;
int taiju;
void show_age();
void show_sinchou();
void show_taiju();
};
ファイル名:hito.cpp
#include <iostream>
#include "hito.h"
using namespace std;
void hito::show_age() {
cout << "年齢は" << age << "です。" << '\n';
}
void hito::show_sinchou() {
cout << "身長は" << sinchou << "です。" << '\n';
}
void hito::show_taiju() {
cout << "体重は" << taiju << "です。" << '\n';
}
この例では、
メンバ関数show_ageの中でメンバ変数ageが、
メンバ関数show_sinchouの中でメンバ変数sinchouが、
メンバ関数show_taijuの中でメンバ変数taijuがそれぞれ使われています。
これもthisポインタのおかげ、と言うワケです。
thisを付けると、そのクラスのメンバである事がハッキリと分かるのが利点です。
thisポインタ付きでの記述例
ファイル名:hito.cpp
#include <iostream>
#include "hito.h"
using namespace std;
void hito::show_age() {
cout << "年齢は" << this->age << "です。" << '\n';
}
void hito::show_sinchou() {
cout << "身長は" << this->sinchou << "です。" << '\n';
}
void hito::show_taiju() {
cout << "体重は" << this->taiju << "です。" << '\n';
}