ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 명품 C++ 5장 1번
    C++ 2018. 10. 31. 17:15

    1. 두 개의 Circle 객체를 교환하는 swap() 함수를 '참조에 의한 호출'이 되도록 작성하고 호출하는 프로그램을 작성하라.


    소스코드


    #include <iostream>
    using namespace std;
    class Circle {
        int radius;
    public:
        Circle() { radius = 1; }
        Circle(int r) { radius = r; }
        double getArea() { return 3.14 * radius*radius; }
        int getRadius() { return radius; }
        void setRadius(int radius) { this->radius = radius; }
    };
    void swap(Circle &a, Circle &b) {
        Circle tmp;
        tmp = a;
        a = b;
        b = tmp;
    }
    int main() {
        Circle a, b(10);
        cout << "a의 반지름 " << a.getRadius() << " b의 반지름 " << b.getRadius() << endl;
        cout << "swap 후>>" << endl;
        swap(a, b);
        cout << "a의 반지름 " << a.getRadius() << " b의 반지름 " << b.getRadius() << endl;
    }


    실행결과



    참조에 의한 호출을 하면 매개 변수가 함수를 호출 하는 쪽의 실인자를 참조하여 실인자와 공간을 공유하도록 하는 인자 전달방식이기 때문에, 정상적으로 객체가 변경 되었습니다.


    참조에 의한 호출은 생성자와 소멸자는 아예 실행되지 않습니다.

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

    명품 C++ 5장 3번  (0) 2018.10.31
    명품 C++ 5장 2번  (0) 2018.10.31
    명품 C++ 4장 Open Challenge  (3) 2018.10.30
    명품 C++ 4장 14번  (1) 2018.10.30
    명품 C++ 4장 13번  (0) 2018.10.30

    댓글

© 2018 TISTORY. All rights reserved.