1. 문제
1. 두 개의 Circle 객체를 교환하는 swap() 함수를 '참조에 의한 호출'이 되도록 작성하고 호출하는 프로그램을 작성하라.
2. 결과
3. 코드
#include <iostream>
using namespace std;
class Circle;
void swap( Circle &c, Circle &cc );
class Circle {
int r;
public :
Circle(int r=1) { this->r = r; }
void setRadius(int r) { this->r = r; }
int getRadius() { return r;}
};
void swap( Circle &c, Circle &cc ) {
int n;
n=c.getRadius();
c.setRadius(cc.getRadius() );
cc.setRadius(n);
}
int main() {
Circle a;
Circle b(10);
cout << "a 반지름 : " << a.getRadius() << endl;
cout << "b 반지름 : " << b.getRadius() << endl;
cout << "swap 후" << endl;
swap(a, b);
cout << "a 반지름 : " << a.getRadius() << endl;
cout << "b 반지름 : " << b.getRadius() << endl;
}
4. 설명
Circle 클래스는 반지름을 저장하는 멤버 변수 r, 생성자, 반지름을 재설정하는 setRadius() 멤버 함수, 반지름을 return 해주는 멤버 함수 getRadius()로 구성 됩니다.
swap()함수는 Circle 변수 2개를 매개변수로 입력 받으면 두 Circle 객체의 반지름을 바꾸어 줍니다.
swap() 함수가 참조에 의한 호출이므로 swap함수에서 따로 값을 return 할 필요는 없습니다.
'명품 C++ programming' 카테고리의 다른 글
명품 C++ programming 실습문제 5장 3번 (0) | 2019.04.07 |
---|---|
명품 C++ programming 실습문제 5장 2번 (0) | 2019.04.07 |
명품 C++ programming 4장 Open Challenge (0) | 2019.04.07 |
명품 C++ programming 실습문제 4장 11번 (0) | 2019.04.07 |
명품 C++ programming 실습문제 4장 10번 (0) | 2019.04.07 |