operator+は関数名であると同時に +演算子の新たな定義の追加を行うという意味が込められています

マックス「ふむ なるほどな


Point operator+(Point p);


の説明が これか~い」

👇


🌞   🌞   🌞   🌞   🌞   🌞   🌞



           まって😊 まって😊

       

       

                実は


+演算子のオーバーロードでは


 +演算子の新たな定義の追加だけでなく


     +演算子の新たな定義の追加


             と


   operator+のメンバ関数宣言が同時に行われます。


ですので


       Point operator+(Point p);



       +演算子に新たな定義を追加する

          

            つまり


     +演算子のオーバーロードをおこなうよ~


という宣言でもあると同時に


          operator+の 


クラスPointのメンバ関数宣言でもあるんです。


やった 説明しちゃった😊


            ど・う?


            みんな?


        ようく分かったぁ?(*´▽`*)


🌞   🌞   🌞   🌞   🌞   🌞   🌞




マックス「👆誰だったら理解できるんだ」




🌞   🌞   🌞   🌞   🌞   🌞   🌞



    ちょちょっと 先走っちゃったぁ



🌞   🌞   🌞   🌞   🌞   🌞   🌞



マックス「な〜んだぁ😊


もう、ちょちょっとなのかあ」



🌞   🌞   🌞   🌞   🌞   🌞   🌞


そう ちょちょっとなの


🌞   🌞   🌞   🌞   🌞   🌞   🌞




マックス「それなら仕方ないな



ソーラーよ



Point operator+(Point p);



の意味わかりそうか?」



ソーラー「そうですね


正直 相当、単純なシステムのような気がします」



マックス「な、なにぃ


もう見切っているのか?」


int(イント)「え~ 


Point operator+(Point p);


って 意味がある単語の並びには みえないな・・・」


ソーラー「そう


正直 相当 僕は理解していないんだyo


ははっ


だから・・・」




🌞   🌞   🌞   🌞   🌞   🌞   🌞


    それを みんなで 考えていくのが


   『演算子のオーバーロードの世界』


     なの


🌞   🌞   🌞   🌞   🌞   🌞   🌞


マックス「ほう


       『演算子のオーバーロードの世界』


について


いろんな考えが次々とオーバーロード


つまり


いろいろな考え方が


新たに


次々と追加されていくというわけか」



ソーラー「くっっ この期に及んで


オーバーロードにかけてくるとは


うまいな」




🌞   🌞   🌞   🌞   🌞   🌞   🌞



           みんな


           もう1度



      Point operator+(Point p);


をよ~く見てね。


      Point operator+(Point p);



   +演算子の新たな定義の追加を行う宣言であると


            同時に


operator+のクラスPointのメンバ関数宣言💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖でもあるんだよ


だから


      Point operator+(Point p);



operator+のクラスPointのメンバ関数宣言として


はっきり意識して


眺めると


Point operator+(Point p);



なぜ


1番左側にPointが記述されているのか?


なぜ


operator+の右隣に()がくっついているのか?


なぜ


()の中に


Point p


が記述されているのか?


がみえてくるかも・・・


🌞   🌞   🌞   🌞   🌞   🌞   🌞



マックス「おお・・・なんか・・・みえてきそうな・・・」


ソーラー「その・・・


operator+って関数💖💖💖💖名なのか・・・


なんだか


関数名にみえないね」


てんC「ソーラーさん


確かに


operator+は関数名に見えないです。


f(int x)

newmadefunction(int a,int b)


などの表現なら


fやnewmadefunctionが関数名であると気づきやすいですね。



なぜ 関数名が


operator+


となっているのか?


それは


operator+には


関数という意味が与えられていると同時に


+演算子の新たな定義の追加を行う宣言という意味が


込められているからだと思われます。」



ソーラー「あ、そっか


もしも


関数名がoperator+でなく


fやnewmadefunctionでは


+演算子の新たな定義の追加を行うという意味を


まったくこめることができないよね。」




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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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