2015년 1월 9일 금요일

참조 전달인자는 언제 사용하는가?

참조 전달인자를 사용하는 주된 이유 두가지:

  • 호출 함수에 있는 데이터 객체의 변경을 허용하기 위해
  • 전체 데이터 객체 대신에 참조를 전달하여 프로그램의 속도를 높이기 위해





함수가 전달된 데이터를 변경하지 않고 사용만 하는 경우:

  • 데이터 객체가 기본 데이터형이나 작은 구조체라면 값으로 전달한다.
  • 데이터 객체가 배열이라면 포인터가 유일한 선택이므로 포인터를 사용한다. 포인터를 const를 지시하는 포인터로 만든다.
  • 데이터 객체가 덩치 큰 구조체라면 const 포인터나 const 참조를 사용하여 프로그램의 속도를 높인다.
  • 데이터 객체가 클래스 객체라면 const 참조를 사용한다.

함수가 호출 함수의 데이터를 변경하는 경우:

  • 데이터 객체가 기본 데이터형이면 포인터를 사용한다.
  • 데이터 객체가 배열이면 유일한 선택은 포인터를 사용하는 것이다.
  • 데이터 객체가 구조체이면 참조 또는 포인터를 사용한다.
  • 데이터 객체가 클래스 객체이면 참조를 사용한다.