🌻天国にいけるC++言語入門🌻 進化し続けるオブジェクト指向プログラミング ver3.2307
2つのオブジェクトを引数に持つ普通の自作関数operator+関数を作製することによりオブジェクトp1,p2同士の足し算p1+p2を実行することもできます
2つのオブジェクトを引数に持つ普通の自作関数operator+関数を作製することによりオブジェクトp1,p2同士の足し算p1+p2を実行することもできます
つづき・・・
マックス「+演算子のオーバーロードを行う方法が
2つあるってことなのか?」
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
そうなの
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
ソーラー「驚きだね
+演算子のオーバーロード
を実行する方法が2つあるんだね。」
てんC「通常は実行できないオブジェクトp1,p2同士の足し算
p1+p2;
を可能にする
+演算子のオーバーロード
を実行する1つ目の方法は
今まで見てきた例のようにクラスPointのメンバ関数operator+関数を
作製する方法だとすると・・・
もう1つの方法は・・・?」
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
通常は実行できないオブジェクトp1,p2同士の足し算
p1+p2;
を可能にする
+演算子のオーバーロード
を実行する2つ目の方法は
クラスPointのメンバ関数でない
普通の自作関数operator+関数を作製するという方法になるんです
実は こっちの方法の方が直感的に簡単でわかりやすく応用が利くかも~~~
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
マックス「まさかっ まだ そんな方法があるとは
『演算子のオーバーロード』
なんか面白いな
そんな方法があるとは・・・
ただ・・その方法を全く思いつかんな」
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
今まで自作関数を作製したことがある人なら
まったく簡単かもしれない・・・
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
マックス「そうなのか?
クラスPointのメンバ関数operator+関数を
作製する方法よりも簡単なのか?」
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
だって
ほんとに
普通の自作関数operator+関数を
作製するだけなんだからよ~ん
たとえば
2つのオブジェクトを引数に持つ普通の自作関数operator+関数を作製すると
p1+p2;
のように
+演算子が登場した場合
その自作関数operator+の定義に従って
p1とp2を引数に持つ自作関数operator+
が実行されることになります
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
ソーラー「
🐳2つのオブジェクトを引数に持つ普通の自作関数operator+関数を作製すると
p1+p2;
のように
+演算子が登場した場合
その自作関数operator+の定義に従って
p1とp2を引数に持つ自作関数operator+
が実行されることになります🐳
ということは
p1+p2;
が実行される際
何が
実行されるかは
自作関数operator+の定義次第ってことなのかな?」
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
💖そのとおり💖
普通の自作関数operator+の定義によって
p1+p2;
の実行結果は
変わってくるの❕
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
マックス「
2つのオブジェクトを引数に持つ普通の自作関数operator+関数を作製すると
いうことは
operator+(Point p,Point q)
のような
2つのオブジェクトp1,p2を受け取れるよう
引数部分に
2つのオブジェクト宣言
Point p
Point q
が設定された自作関数operator+を設定するってことか?
そうして
main関数内で
operator+(p1,p2);
を
実行することにより
p1+p2;
が実行できるというわけか?
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
ほんと それだけ(笑)
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
マックス「そして
何が実行されるかは
自作関数operator+の定義次第というわけだ」
int(イント)「マックス かっしこ~いい」
マックス「ははっ そうだろう
よし、 よ~し
あとは どのように
自作関数operator+の定義を設定するかだな」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます