본문 바로가기
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;
}

'c++' 카테고리의 다른 글

오버로딩 된 new,  (0) 2022.04.09
참조 vs 포인터  (0) 2022.01.02
cpp transform  (0) 2021.12.15
static 키워드 (cpp, java)  (0) 2021.10.23
cpp Reference(&)  (0) 2021.08.12