struct Vec{
    int x;
    int y;
    Vec operator+(const Vec &v){
        x+=v.x;     y+=v.y;
        return *this;
    }
    Vec Vec::operator+=(const Vec &v){
        x+=v.x;     y+=v.y;
        return *this;
    }
};
ostream& operator<<(ostream &out, const Vec &v){
    return out << "x : " << v.x << "\ny : " << v.y << "\n";
}
my + and += operator have same behavior how can I avoid redefinition?
