C++ 함수 특징
# 함수 디폴트 파라미터
> 함수에 파라미터를 전달하는 기본값을 설정
> 함수 원형에만 지정할 수 있다.
> 우선 순위 위치 순서대로만 지정할 수 있다. ( 우->좌 )
> 별도위치만 지정할 수 없다.
# 함수 포인터
> 함수의 이름이 곳 포인터가 된다. ( 시작 주소 )
> 함수의 시작 주소를 가리키는 상수 ( 값 변경 불가 )
# 함수 포인터 선언
> typedef, auto 키워드 이용
> typedef void (*functionptr)(void);
# 함수 오버로딩 ( 다형성 )
> 함수 이름은 동일하고 파라미터 개수와 리턴값이 다름 ( 시그니처 )
# 함수 오버라이딩 ( 다형성 - 상속 관련 )
> 함수 이름과 파라미터 개수와 리턴값이 같음 ( 재정의 )
> 부모의 함수와 동일한 이름을 갖는 함수이지만 내용이 다름
# 인라인 함수
> inline 키워드 이용
> 함수의 모든 코드를 호출된 위치에 삽입하는 방식 ( 컴파일 시점 )
> 함수 호출 과정으로 생기는 이점( 재기호출 및 디버깅 등 ) 상실
> 작은 단위의 함수만 추천
# 매크로 함수
> #define 선행처리 지시문 이용
> { } 중괄호로 함수의 범위를 정확하게 해야 한다.
# 예제 소스
# include <iostream>
void FuncTEST(int, int); // 일반 함수 원형
void FuncTEST(int, int, int, int); // 일반 함수 원형 ( 오버로딩 )
typedef void (*PTR_TEST_functionptr)(int, int); // 함수 포인터 원형
int main(void)
{
PTR_TEST_functionptr ptr = FuncTEST; // 함수를 pointer 에 연결시킴( 동일한 함수 )
FuncTEST(1, 1);
ptr(1, 1);
FuncTEST(1, 1, 0, 0);
return 0;
}