반응형
  • 대입 연산자
    • 객체의 멤버를 모두 복사해주는 연산자
  • 생성하지 않을경우 컴파일러가 자동으로 제공하는 멤버들
    • 기본 생성자
    • 소멸자
    • 복사 생성자(Shallow Copy)
    • 대입 연산자
    • move 생성자
    • move 대입 연산자
class Point
{
    int x, y;
public:
    Point(int a = 0, int b = 0) : x(a), y(b) {}

    void print() const
    {
        std::cout << x << ", " << y << std::endl;
    }

    Point& operator=(const Point& p)
    {
        x = p.x;
        y = p.y;

        return *this;
    }

};

int main()
{
    Point p1(1, 1);
    Point p2(2, 2);
    Point p3;
    p3 = (p1 = p2);

    (p3 = p1) = p2; // 대입 연산자가 참조 리턴을 하지 않으면 p3에 p2가 대입되지 않음

    p3.print();

}
반응형

+ Recent posts