🌻天国にいけるC++言語入門🌻 進化し続けるオブジェクト指向プログラミング ver3.2307
p1+p2つまりp1.operator+(p2)が何を意味しているかはクラスPointのメンバ関数operator+関数の定義によって決定されます p1+p2をみただけではわかりませ~ん
p1+p2つまりp1.operator+(p2)が何を意味しているかはクラスPointのメンバ関数operator+関数の定義によって決定されます p1+p2をみただけではわかりませ~ん
🌞 🌞 🌞 🌞 🌞 🌞 🌞
はい😊 マックスさん
はい😊 こっち こっち
ついてきてね。
🌞 🌞 🌞 🌞 🌞 🌞 🌞
マックス「ひょぺえ ちょちょっと まってちょよぉんん」
🌞 🌞 🌞 🌞 🌞 🌞 🌞
クラスPointのメンバ関数operator+関数の定義
👇
Point Point::operator+(Point p)
{
Point a;
a.x = x + p.x;
a.y = y + p.y;
return a;
}
👆
の定義内容
Point a;
a.x = x + p.x;
a.y = y + p.y;
return a;
の
考察をしてみれば
p1+p2
が
何を意味しているのか?
p1+p2;
が実行されると
何が起こるのか?
つまり
p1.operator+(p2)
が何を意味しているのか
p1.operator+(p2);
が実行されると
何が起こるのか?
が分かるようになります
つまり(笑)
p1+p2
が
何を意味しているのか?
p1+p2;
が実行されると
何が起こるのか?
つまり
p1.operator+(p2)
が何を意味しているのか
p1.operator+(p2);
が実行されると
何が起こるのか?
は
クラスPointのメンバ関数operator+関数の定義によって
決定されることになるんです。
🌞 🌞 🌞 🌞 🌞 🌞 🌞
マックス「
じゃあ
p1+p2
をみただけでは
p1+p2が
何を意味しているか
わからないというわけだ。
p1+p2
は
一見すると
何かの足し算が行われているように見えるんだが
そうとは限らないってわけだ
🌞 🌞 🌞 🌞 🌞 🌞 🌞
そう
たとえ
p1+p2
のように
+の記号が使われていても
p1+p2
を見ただけでは
p1+p2
が
何を意味しているか
判断することはできないんでぇす
1+5のような数値同士の足し算は実行できるけど
p1+p2
のような
オブジェクト同士の足し算は普通は実行できないんだ~
そこで
オブジェクト同士の足し算
p1+p2
が実行できるよう
+演算子のオーバーロードを実行するわけだけど
オブジェクト同士の足し算
p1+p2
の
+演算子がどのような働きをするかをきめるのは
定義しだい、あなた・し・だ・い・・なの
必ずしも足し合わせるという機能を
+演算子に新たに追加して定義(オーバーロード)する必要はないってわけなんだね
🌞 🌞 🌞 🌞 🌞 🌞 🌞
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます