thisというポインタ変数はクラスのメンバ関数の定義内でのみ用いることができるポインタ変数なんですよ

🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞



            this



というポインタ変数は


クラスのメンバ関数の定義内でのみ用いることができるポインタ変数です



🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞




マックス「🌊🌊そんなクラスのメンバ関数の定義内でのみ用いることができる


ポインタ変数なんてあるのか?🌊🌊」



🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞



            ありますとも


             実際に


thisというポインタ変数が


クラスのメンバ関数の定義内に用いられる例を一緒にみてみよう


次のクラスPointのクラス宣言とそのメンバ関数の定義


を見てちょ~だい😊


👇

class Point{


public: //アクセス指定子がpublicに設定されています

int x;

int y;


public:


void pointdisplay();


};


void Point::pointdisplay() {


cout <<this->x << "\n";

cout <<this->y << "\n";


}


みんな


ポインタ変数thisがもちいられてるのがわかるかな~


 わかったかな~


どう?


クラスPointのメンバ関数pointdisplay()の定義内で


ポインタ変数thisがもちいられているね



        すごいでしょ


🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞



マックス「すごい・・・ 何をしだしてるんだか


やはりまったく わからん」


てんC「マックスさん


どうやら


thisはポインタ変数で


->はポインタ変数とともにもちいられるアロー演算子のようですね。」


マックス「ふっ そうか


あとは


this->x

this->y


が何を意味しているか・・・が問題なのかどうかすら


わからん???


みたか 俺の力を」




🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞




          す、すごい な、なんて 力・・



なら・・・



まずは



このクラスPointのクラス宣言とそのメンバ関数の定義

👇

class Point{


public: //アクセス指定子がpublicに設定されています

int x;

int y;


public:


void pointdisplay();


};


void Point::pointdisplay() {


cout <<this->x << "\n";

cout <<this->y << "\n";


}


が用いられた


次の


プログラムをみてね

👇

#include <iostream>


using namespace std;


class Point{


public: //アクセス指定子がpublicに設定されています

int x;

int y;


public:


void pointdisplay();


};


void Point::pointdisplay() {


cout <<this->x << "\n";

cout <<this->y << "\n";

}


int main(){


Point p1;


p1.x=1;

p1.y=1;


p1.pointdisplay();


return 0;

}


プログラムの実行結果


1

1


🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞


マックス「ビルド実行できているぞ


プログラムの実行結果


1

1


か・・・


main関数内のプログラムは


Point p1;


p1.x=1;

p1.y=1;


p1.pointdisplay();



なんか


簡単だな




🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞


このプログラムでは


Point p1;


により


クラスPoint型のオブジェクトp1が生成されています


すると


クラスPoint型のオブジェクトp1のメンバ変数


p1.x

p1.y


クラスPoint型のオブジェクトp1のメンバ関数


p1.pointdisplay()


が生成されることになりますね。


そして


p1.x=1;

p1.y=1;


が実行されています


ですので


クラスPoint型のオブジェクトp1のメンバ変数


p1.x

p1.y



格納されている数値データは


1

1


になります


そして


クラスPoint型のオブジェクトp1のメンバ関数


p1.pointdisplay();



実行されています


つまり


クラスPointのメンバ関数pointdisplay()の定義内の


cout <<this->x << "\n";

cout <<this->y << "\n";


実行されることになります



        このとき!


🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞



マックス「オオ 燃える展開だな 



        このとき!          」





🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞


このとき



       this->x;

       this->y;


のポインタ変数thisには


🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞



マックス「オオ


       this->x;

       this->y;


のポインタ変数thisにはぁ!」





🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞



           つづく・・・


🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞   🌞



マックス「どこにいくぅ!」















































  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る