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 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では
+演算子の新たな定義の追加を行うという意味を
まったくこめることができないよね。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます