演算子のオーバーロード
ベクトルの加算ができるよう、operatorキーワードを使って加算演算子(+)をオーバーロードしてみる。
#include <stdio.h> class Vect { private: double x, y; // 座標を格納するメンバー変数 public: // コンストラクター Vect(double x, double y) { this->x = x; this->y = y; } // 各座標のゲッター double getX() {return this->x;} double getY() {return this->y;} // 演算子をオーバーロードする。型 operatorキーワード 演算子(const 型 参照渡し引数) {処理の内容} Vect operator +(const Vect &v) { Vect ans(this->x + v.x, this->y + v.y); // 各座標を足して返す。 return ans; } }; int main() { Vect a(0, 1); Vect b(1, 0); Vect c = a + b; printf("%f %f\r\n", c.getX(), c.getY()); return 0; }
――――――――――――――――――――――――――――――――――