C++
C++ 실습 문제 6 (Reference)
안도일
2022. 4. 5. 17:53
1. 참조 매개 변수를 통해 평균을 리턴하고 리턴문을 통해서는 함수의 성공 여부를 리턴하도록 average() 함수를 작성하라
return문으로는 bool 형태로 true,false 성공 여부를 리턴하고, 참조 매개 변수 avg를 통해 실제 값을 리턴
2. 키보드로부터 반지름 값을 읽어 Circle 객체에 반지름을 설정하는 readRadius() 함수를 작성하라.
참조 매개 변수를 통해 객체 Circle에 참조를 전달.
3. 참조 리턴을 통해 문자열을 변경하라.
find함수에서 s[index] 공간의 참조 리턴
4. swap함수를 각각 value, address, reference로 구성하라.
값에 의한 호출은 원본 변수에 영향이 없지만 포인터를 이용한 call by address, 참조를 이용한 call by reference는 원본에 변화를 준다.
5. 참조를 이용한 여러가지
add함수를 자세히 보자. add(x,y,z)를 선언했을 때 z의 값은 선언되어 있지 않은데 어떻게 정상적으로 작동할까.
void add에서 z는 &c로 선언된다. 따라서 z의 값은 c = a+b = 30이 된다.
참조 리턴 함수 &ref를 보자.
ref(x,y,z) = 100 으로 선언되어있다. 여기서 x= 10, y= 20이고
int &ref 에서 c = a*b이므로 c = 200 즉 z = 200이 된다.
또 함수에서 a의 장소를 리턴한다.
따라서 ref(x,y,z) = 100은 a =100이라는 뜻이므로 결국 x = 100 이다.