operatorは演算子という意味で operator+は+演算子という意味なんで~す

🌞   🌞   🌞   🌞   🌞   🌞   🌞




             では再び!



       いきま~す。\(^o^)/



Pointのクラス宣言とメンバ関数pointdisplay()の定義は


次のようになっているとします。

👇

class Point{


public:

int x;

int y;


public:


void pointdisplay();


};


void Point::pointdisplay() {


cout << x << "\n";

cout << y << "\n";

}



🌞   🌞   🌞   🌞   🌞   🌞   🌞



+演算子に



               p1+p2; 




のように




         💖クラスPoint型の💖 




オブジェクトp1とオブジェクトp2を足し合わせる機能を追加してみたいとおもいます。



そのためには


Pointのクラス宣言内に


+演算子のオーバーロード宣言の部分を書きくわえて


+演算子のオーバーロードの定義を記述します


👇


class Point{


public:

int x;

int y;


public:


void pointdisplay();


public:


Point operator+(Point p);




};


void Point::pointdisplay() {


cout << x << "\n";

cout << y << "\n";

}



Point Point::operator+(Point p)

{

Point a;


a.x = x + p.x;

a.y = y + p.y;

return a;

}


ここで


Pointのクラス宣言内に


+演算子のオーバーロード宣言

👇

public:


Point operator+(Point p);

👆

が記述されていることと



+演算子のオーバーロードの定義(新たな機能の定義)

👇

Point Point::operator+(Point p)

{

Point a;


a.x = x + p.x;

a.y = y + p.y;


return a;

}


が追加されていることに注目してね。


    


     さ~て(´▽`*)




どこから始めようかな?


      うふふ


ここで・・・


Pointのクラス宣言内に


+演算子のオーバーロード宣言

👇

public:


Point operator+(Point p);

👆

が付け加えられています。


まずこのように記述することで


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


つまり


+演算子の機能を追加して定義することを


宣言しています


そして


どのような定義内容かを


Point Point::operator+(Point p)

{

Point a;


a.x = x + p.x;

a.y = y + p.y;


return a;

}


のように記述しています。

                          


🌞   🌞   🌞   🌞   🌞   🌞   🌞




マックス「


public:


Point operator+(Point p);



+演算子の機能を追加して定義することを


宣言しているのか?


この宣言の仕組みはどうなっているんだ?


なんだ


この


operatorっていうのは?」


int(イント)「えへへ 


わたしはわかっちゃった~」


マックス「なにぃ」


int(イント)「


operatorはオペレータっていうんでしょう。


オぺレーターっていったら


         演算子



のことじゃな~い(´▽`*)


ということは


operator+


ていうのは


         +演算子



ということになるんじゃな~い


かんたんね。」


マックスをつんつんする


マックス「 なにぃ


もっと


難しい意味があるのかとおもっていたぞ」


ソーラー「さりげなく


operator+



operatorが+の前に記述されているね。


英語表記だから


日本語の


+演算子と違い


operatorが+の前に


くるんだね」


マックス「ということは


Pointのクラス宣言内で


Point operator+(Point p);


をみたとき


operator+


と記述しているだけで


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


つまり


+演算子の機能を追加しようとしていることがわかるわけだ



ここは


俺が華麗に


この


                😸Point operator+(Point p);😸


の仕組みの解説をしてみるぜ」


int(イント)「わあ すっご~い


マックス


Point operator+(Point p);


の意味がもうわかるの?」



マックス「ひゃはは


Point operator+(Point p);


の意味はなあ・・・・・」



                   つづく・・・

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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