다음을 통해 공유


오버로드된 함수의 주소

 

게시: 2016년 4월

인수 없이 함수 이름을 사용하면 해당 함수의 주소가 반환됩니다. 예:

int Func( int i, int j );
int Func( long l );

...

int (*pFunc) ( int, int ) = Func;

위의 예제에서는 Func의 첫 번째 버전이 선택되고 해당 주소가 pFunc에 복사됩니다.

컴파일러는 대상의 인수 목록과 정확하게 일치하는 인수 목록이 있는 함수를 찾아 선택할 함수의 버전을 결정합니다. 오버로드된 함수 선언의 인수는 다음 중 하나와 일치합니다.

  • 초기화되는 개체(위의 예제에 나와 있음)

  • 할당 문의 왼쪽

  • 함수에 대한 형식 인수

  • 사용자 정의 연산자에 대한 형식 인수

  • 함수 반환 형식

정확하게 일치하는 항목이 없는 경우 함수의 주소를 사용하는 식은 모호해지고 오류가 생성됩니다.

비멤버 함수 Func가 위의 예제에서 사용되었지만 오버로드된 멤버 함수의 주소를 사용할 때 동일한 규칙이 적용됩니다.

참고 항목

오버 로드 (c + +)