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



+演算子がどのような働きをするかをきめるのは


定義しだい、あなた・し・だ・い・・なの


必ずしも足し合わせるという機能を


+演算子に新たに追加して定義(オーバーロード)する必要はないってわけなんだね







🌞   🌞   🌞   🌞   🌞   🌞   🌞


           

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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