ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 명품 C++ 7장 8번
    C++ 2018. 11. 3. 14:16

    8. 원을 추상화한 Circle 클래스는 간단히 아래와 같다.


    다음 연산이 가능하도록 연산자를 프렌드 함수로 작성하라.


    소스코드


    #include <iostream>
    using namespace std;
    class Circle {
        int radius;
    public:
        Circle(int radius = 0) { this->radius = radius; }
        void show() { cout << "radius = " << radius << " 인 원" << endl; }
        friend Circle& operator++(Circle &op);
        friend Circle operator++(Circle &op,int x);
    };
    Circle& operator++(Circle &op) {
        op.radius++;
        return op;
    }
    Circle operator++(Circle &op, int x) {
        Circle tmp = op;
        op.radius++;
        return tmp;
    }
    int main() {
        Circle a(5), b(4);
        ++a; // 반지름을 1 증가 시킨다.
        b = a++; // 반지름을 1증가 시킨다.
        a.show();
        b.show();
    }


    실행결과



    전위 연산자는 변경된 값의 객체를 넘기기 위해 객체의 참조를 리턴해야합니다

    후위 연산자는 변경 이전의 객체를 넘기기 위해 원래 자신의 객체를 저장한 후, 저장한 것을 리턴해야합니다.

    객체의 값의 변경을 위해 참조에 의한 호출을 사용해야 합니다.

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

    명품 C++ 7장 10번  (0) 2018.11.03
    명품 C++ 7장 9번  (0) 2018.11.03
    명품 C++ 7장 7번  (0) 2018.11.03
    명품 C++ 7장 6번  (0) 2018.11.03
    명품 C++ 7장 5번  (0) 2018.11.03

    댓글

© 2018 TISTORY. All rights reserved.