C++ operator演算子の使い方
同じクラスや、構造体同士を計算する際、直接計算しようとすると起きるはずです。
main.cpp
- #include <iostream>
- #include "Vector2.h"
- int main()
- {
- Vector2 vec1 = { 10,10 };
- Vector2 vec2 = { 10,10 };
- vec1 += vec2;//C++ これらのオペランドと一致する演算子 はありません
- }
Vector2.h
- class Vector2
- {
- public:
- int x, y;
- };
このプログラムを、ビルドすると演算子がないといわれます。
解決法
ここで、operater演算子を使います。
operater演算子は、クラスや構造体の演算をする時に役に立ちます
const参照で中身がいじれないようにしましょう。
後、アドレスを渡すことで高速に処理してくれます。
(例)
Vector2 operator+=(const Vector2& vec)
{
return { x + vec.x,y + vec.y };
}
main.cpp
- #include <iostream>
- #include "Vector2.h"
- int main()
- {
- Vector2 vec1 = { 10,10 };
- Vector2 vec2 = { 10,10 };
- vec1 += vec2;
- }
Vector2.h
- class Vector2
- {
- public:
- int x, y;
- Vector2 operator+=(const Vector2& vec);
- };
Vector2.cpp
- #include "Vector2.h"
- Vector2 Vector2::operator+=(const Vector2& vec)
- {
- return { x + vec.x,y + vec.y };
- }