ほんとに💖p1.operator+(p2);💖をp1+p2;の代わりに記述して実行することができます。
皆で+演算子のオーバーロードが用いられているプログラムを眺めていますよ~ん
👇
#include <iostream>
using namespace std;
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;
}
int main() {
Point p1;
p1.x = 1;
p1.y = 1;
p1.pointdisplay();
Point p2;
p2.x = 2;
p2.y = 2;
p2.pointdisplay();
Point p3;
p3 = p1 + p2;
p3.pointdisplay();
return 0;
}
プログラムの実行結果
1
1
2
2
3
3
マックス「ところで
今の話では
👇
💖p1+p2;💖
と記述すれば
💖p1.operator+(p2);💖
と記述されたことに等しくなるんです。
逆に言えば
💖p1.operator+(p2);💖
を
実行したければ
💖p1+p2;💖
と記述すればいいことになるんです。
👆
ということだったが
もしや
もろに
p1+p2;
の部分を
🍅p1.operator+(p2);🍅
と記述しても
プログラムの実行ができたりしてなあ
にゃはははは
まさかなあ」
ソーラー「さすがに
p1.operator+(p2);
は実行できないんじゃないかな・・・」
マックス「そう思うよな
まあ 試しに
p1+p2;
の部分を
🍅p1.operator+(p2);🍅
と記述して
プログラムを実行してみるか
なあ int(イント)」
int(イント)「どんなビルドエラー表示がでてくるのかな😊」
そのプログラムはこちらになります
👇
#include <iostream>
using namespace std;
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;
}
int main() {
Point p1;
p1.x = 1;
p1.y = 1;
p1.pointdisplay();
Point p2;
p2.x = 2;
p2.y = 2;
p2.pointdisplay();
p3 = p1.operator+(p2);//👈🌞ここに注目 p1+p2;の代わりにp1.operator+(p2)を記述しています
p3.pointdisplay();
return 0;
}
ソーラー「それでは
ビルドっ
」
マックス「!??
な、なんか黒い画面が出てきたぞ・・・
まさか・・ 」
プログラムの実行結果
1
1
2
2
3
3
マックス「なにぃ
p1+p2;
の部分を
🍅p1.operator+(p2);🍅
と記述しても
プログラムが実行できている!!
ほんとに
引数にオブジェクトp2が代入されたオブジェクトp1のメンバ関数operator+
p1.operator+(p2)
が存在し
いま
実行されているってことか
『+演算子のオーバーロード』
では
ほんとに
クラスPointのメンバ関数であるoperator+関数の定義が行われているってわけだ
クラスPointのメンバ関数であるoperator+関数
は
説明のための仮の設定ではないんだな
これは ほんとにすごいな」
int(イント)「ほんとにぃ きゃはは」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます