c23 [C++] 참조
본문 바로가기
[C++]

[C++] 참조

by Jarvis2304 2022. 10. 23.

▶ 참조

- 참조(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

댓글