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+の定義を設定するかだな」




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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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