🌻天国にいけるC++言語入門🌻 進化し続けるオブジェクト指向プログラミング ver3.2307
もう1つオブジェクト同士の足し算p1+p2;を可能にする+演算子のオーバーロードを実行する方法が存在します その方法ではクラスのメンバ関数でない普通の自作関数operator+を作製することになります
もう1つオブジェクト同士の足し算p1+p2;を可能にする+演算子のオーバーロードを実行する方法が存在します その方法ではクラスのメンバ関数でない普通の自作関数operator+を作製することになります
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
もう
Point型のオブジェクト同士の足し算
p1+p2;
を実行する方法はわかったかな?」
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
マックス「+演算子に新たな機能を追加する
+演算子のオーバーロードを実行
つまり
operaor+関数のクラスPointのメンバ関数宣言
Point operator+ (Point p);
を実行し
クラスPointのメンバ関数operator+の定義
👇
Point Point::operator+(Point p){
Point a;
a.x = x + p.x;
a.y = y + p.y;
return a;
}
を実行しておけば
main関数内で
p1+p2;
すなわち
p1.operator+(p2);
が実行されると
クラスPointのメンバ関数operator+の定義内の
Point a;
a.x = x + p.x;
a.y = y + p.y;
return a;
の
⭐️ ⭐️ ⭐️
x
y
に
クラスPoint型のオブジェクトp1のメンバ変数
p1.x
p1.y
⭐️ ⭐️ ⭐️
🌙 🌙 🌙
p.x
p.y
に
クラスPoint型のオブジェクトp2のメンバ変数
p2.x
p2.y
🌙 🌙 🌙
が代入された
Point a;
a.x = p1.x + p2.x;
a.y = p1.y + p2.y;
return a;
が実行される
Point a;
の実行により
クラスPoint型のオブジェクトaが生成され
a.x = p1.x + p2.x;
a.y = p1.y + p2.y;
の実行により
クラスPoint型のオブジェクトp1のメンバ変数
p1.x
p1.y
クラスPoint型のオブジェクトp2のメンバ変数
p2.x
p2.y
同士の足し算
p1.x+p2.x
p1.y+p2.y
が実行されるんだろう
そして
クラスPoint型のオブジェクトaのメンバ変数
a.x
a.y
に
p1.x+p2.x
p1.y+p2.y
が代入される。
そして
return a;
により
p1.operator+(p2)
に
戻り値としてクラスPoint型のオブジェクトa
が返されるというわけだ。
すなわち
p1.operator+(p2)すなわちp1+p2
に
戻り値としてクラスPoint型のオブジェクトa
が返されるというわけだ。
なので
p1+p2=a;
のような状態になる
クラスPoint型のオブジェクトaのメンバ変数
a.x
a.y
に
p1.x+p2.x
p1.y+p2.y
が代入されているので
クラスPoint型のオブジェクト
p1+p2のメンバ変数(p1+p2).x
p1+p2のメンバ変数(p1+p2).y
は
p1.x+p2.x
p1.y+p2.y
を表すことになる
結局
クラスPoint型のオブジェクト同士の足し算
p1+p2;
を実行すると
クラスPoint型のオブジェクト
p1+p2のメンバ変数(p1+p2).x
p1+p2のメンバ変数(p1+p2).y
は
p1.x+p2.x
p1.y+p2.y
を表すことになる
クラスPoint型のオブジェクト同士の足し算
p1+p2;
が実行できたというわけだ」
ソーラー「これで オブジェクト同士の足し算
p1+p2;
を可能にする
+演算子のオーバーロードの解説は終わりってわけだね」
てんC「ひと段落ですね」
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
実は
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
マックス「❔実は」
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
+演算子のオーバーロードのお話はおわりませ~ん
今の方法以外に
+演算子の機能を追加する(オーバーロードを行う)方法があるんです
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
マックス「なにぃぃ」
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
今の方法では
クラスPointのメンバ関数operator+を作製することにより
+演算子の機能を追加する
+演算子のオーバーロードを実行しました。
それとは別に
クラスPointのメンバ関数でない
普通の自作関数operator+を作製することにより
+演算子の機能を追加する
+演算子のオーバーロードを実行することができます。
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
マックス「なんでぇぇぇ
っていうか ど~いうことぉ?」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます