다음을 통해 공유


C++ 함수 정의

함수 정의는 함수를 만드는 코드인 함수 본문을 제공한다는 점에서 함수 선언과 다릅니다. 함수 정의의 형식은 다음과 같습니다.

decl-specifiers declarator [cv-qualifers] [exception-specification]
{
   // function body
}
decl-specifiers declarator [cv-qualifers] =default;

decl-specifiers declarator [cv-qualifers] =delete;

정의 부분은 다음과 같습니다.

  • 함수 선언에 설명되어 있는 선언 지정자.

  • 선언자(이 문서의 뒷부분에 나오는 설명 참조).

  • 선택적 const 또는 volatile 한정자. 이 컨텍스트에서 const는 클래스 멤버에 대해서만 사용할 수 있으며 함수가 클래스의 데이터 멤버를 수정하지 않음을 나타내는 데 사용합니다.

  • 함수가 throw할 수 있는 예외에 대해 설명하는 예외 사양. 예외 사양을 참조하십시오.

  • 함수 본문은 중괄호({})로 묶인 문으로 구성됩니다.

  • 명시적인 기본값 정의인 경우 =default;.

  • 삭제된 정의인 경우 =delete;.

선언자의 형식은 다음과 같습니다.

  • 반환 형식을 수정하는 선택적 포인터 또는 참조 연산자.

  • 선택적 Microsoft 전용 한정자. Microsoft 전용 한정자을 참조하십시오.

  • 함수의 이름. 함수가 클래스 또는 구조체의 멤버인 경우 범위 결정 연산자를 사용하여 이름을 정규화할 수 있습니다.

  • **()**로 묶인 인수 선언 목록.

  • 생성자의 경우 선택적 생성자 이니셜라이저(이 문서의 뒷부분에 나오는 설명 참조).

이러한 경우 선언자의 형식에 대한 자세한 내용은 함수 포인터를 반환하는 함수에 대한 함수 선언의 설명을 참조하십시오.

인수 선언 목록에서 선언된 형식 인수는 함수 본문의 범위 내에 있습니다.

다음 그림에서는 함수 정의의 일부분을 보여 줍니다. 음영 처리된 영역은 함수 본문입니다.

함수 정의 부분

함수 정의 부분

구문의 생성자 이니셜라이저는 생성자에서만 사용합니다. 목적은 기본 클래스와 포함된 개체의 초기화를 허용하는 것입니다. 생성자 이니셜라이저 사용에 대한 자세한 내용은 기본 항목 및 멤버 초기화를 참조하십시오.

명시적인 기본값으로 설정된 정의는 특수 멤버 함수에 대해서만 선언될 수 있습니다. 특수 멤버 함수가 명시적인 기본값으로 지정된 경우, 인라인이 아닌 경우를 제외하고(암시적으로 선언된 특수 멤버 함수는 항상 인라인) 구현에서 해당 함수에 암시적 정의가 있는 것처럼 정의합니다. 기본값으로 설정된 함수에 대한 자세한 내용은 C++11 기능에 대한 지원(최신 C++)의 "기본 설정 및 삭제된 함수" 단원을 참조하십시오.

삭제된 함수라고도 하는 삭제된 정의는 암시적으로 인라인입니다. 함수를 선언하지 않고 명시적 또는 암시적으로 삭제된 함수를 참조하는 프로그램은 잘못된 형식입니다. 삭제된 함수에 대한 자세한 내용은 C++11 기능에 대한 지원(최신 C++)의 "기본 설정 및 삭제된 함수" 단원을 참조하십시오.

참고 항목

참조

선언자

개념

함수에 대한 인수 종속 이름(Koenig) 조회