참조 전달인자를 사용하는 주된 이유 두가지:
함수가 전달된 데이터를 변경하지 않고 사용만 하는 경우:
함수가 호출 함수의 데이터를 변경하는 경우:
- 호출 함수에 있는 데이터 객체의 변경을 허용하기 위해
- 전체 데이터 객체 대신에 참조를 전달하여 프로그램의 속도를 높이기 위해
함수가 전달된 데이터를 변경하지 않고 사용만 하는 경우:
- 데이터 객체가 기본 데이터형이나 작은 구조체라면 값으로 전달한다.
- 데이터 객체가 배열이라면 포인터가 유일한 선택이므로 포인터를 사용한다. 포인터를 const를 지시하는 포인터로 만든다.
- 데이터 객체가 덩치 큰 구조체라면 const 포인터나 const 참조를 사용하여 프로그램의 속도를 높인다.
- 데이터 객체가 클래스 객체라면 const 참조를 사용한다.
함수가 호출 함수의 데이터를 변경하는 경우:
- 데이터 객체가 기본 데이터형이면 포인터를 사용한다.
- 데이터 객체가 배열이면 유일한 선택은 포인터를 사용하는 것이다.
- 데이터 객체가 구조체이면 참조 또는 포인터를 사용한다.
- 데이터 객체가 클래스 객체이면 참조를 사용한다.
댓글 없음:
댓글 쓰기