▶ 참조
- 참조(reference)란 가리킨다는 뜻으로, 이미 존재하는 객체나 변수에 대한 별명(alias)
▷ 참조 활용
- 참조 변수
- 참조에 의한 호출
- 참조 리턴
▶ 참조 변수
▷ 참조 변수 선언
- 참조자 &의 도입
- 이미 존재하는 변수에 대한 다른 이름(별명)을 선언
- 참조 변수는 이름만 생기며, 참조 변수에 새로운 공간을 할당하지 않음
- 초기화로 지정된 기본 변수를 공유
▷ 참조 변수 선언 및 사용 사례
예제) 기본 타입 변수에 대한 참조
예제) 객체에 대한 참조
▶ 참조에 의한 호출 (call by reference)
- 참조를 가장 많이 활용하는 사례
▷함수 형식
- 함수의 매개 변수를 참조 타입으로 선언
- 참조 매개 변수(reference parameter)라고 부름
- 참조 매개 변수의 이름만 생기고 공간이 생기지 않음
- 참조 매개 변수는 실인자 변수 공간 공유
- 참조 매개 변수에 대한 조작은 실인자 변수 조작 효과
▷ 참조에 의한 호출 사례
▷ 참조 매개변수가 필요한 사례
● 다음 코드에 문제점은?
▷ average()함수의 작동
- 계산에 오류가 있으면 0 리턴, 아니면 평균 리턴
▷ 만일 average()가 리턴한 값이 0이라면?
평균이 0인지, 오류가 발생한지 알수없음
예제) 참조 매개 변수로 평균 리턴하기
▶ 참조 리턴
▷ C언어의 함수 리턴
- 함수는 반드시 값만 리턴
ex) 기본 타입 값(int, char, double 등), 포인터 값
▷ C++의 함수 리턴
- 함수는 값 외에 참조 리턴 가능
- 참조 리턴 :변수 등과 같이 현존하는 공간에 대한 참조 리턴 (변수의 값을 리턴하는 것 아님)
▷ 값을 리턴하는 함수 vs 참조를 리턴하는 함수
예제) 참조 리턴
참고문헌: 황기태,[명품 C++ Programming] 생능출판(2017), 671P
'[C++]' 카테고리의 다른 글
[C++] 함수 중복(다형성) (0) | 2022.10.26 |
---|---|
[C++] 얕은 복사와 깊은 복사 (0) | 2022.10.23 |
[C++] 인자 전달 방식 (0) | 2022.10.15 |
[C++] 문자열 (1) | 2022.10.15 |
[C++] this 포인터 (0) | 2022.10.14 |
댓글