c++
연산자 오보로딩
by kcj3054
2021. 10. 23.
- 연산자 오버로딩 이름은 같지만 매개변수가 다르다
#include <iostream>
using namespace std;
class Vector
{
public:
Vector operator+(const Vector& rhs) const; // Vector(반환값), 좌항 operator+를 한다 우항은 (const Vector&rhs)const;
Vector operator+(const Vector &rhs)const; // 뒤에 const는 a + b 할때 a가 변경되지 않도록하는 것
Vector(int x, int y) {
this->mx = x;
this->my = y;
}
Vector() {};
private:
int mx;
int my;
};
Vector Vector::operator+(const Vector &rhs) const
{
Vector sum;
sum.mx = mx + rhs.mx;
sum.my = my + rhs.my;
return sum;
}
int main() {
Vector v1(10, 20);
Vector v2(3, 17);
//Vector sum = v1 + v2;
Vector sum = v1.operator+(v2); // 위와 동일, 연산자 오버로딩자체도 맴버함수
return 0;
}