특수 멤버 함수 (C++)
C++는 클래스 멤버로만 선언할 수 있는 여러 종류의 함수를 정의합니다. 이러한 함수를 "특수 멤버 함수"라고 합니다. 이러한 함수는 지정된 클래스 개체를 작성, 제거, 복사 및 다른 유형의 개체로 변환하는 방식에 영향을 줍니다. 이러한 함수 중 대부분에 적용되는 또 다른 중요한 속성은 컴파일러를 통해 암시적으로 호출할 수 있다는 것입니다.
이 섹션에서 설명하는 특수 멤버 함수는 다음과 같습니다.
생성자. 개체의 자동 초기화를 활성화합니다.
소멸자. 개체가 명시적 또는 암시적으로 제거된 후 정리를 수행합니다.
변환 함수. 클래스 형식과 다른 형식 간의 변환을 수행합니다.
operator new 함수. 저장소를 동적으로 할당합니다.
operator delete 함수. new 연산자를 사용하여 할당된 저장소를 해제합니다.
할당 연산자(operator=). 할당 수행 시 사용됩니다.
각 클래스에 대해 위의 목록에 있는 항목을 사용자 정의할 수 있습니다.
특수 멤버 함수는 기타 멤버 함수와 같은 액세스 규칙을 따릅니다. 액세스 규칙은 멤버 액세스 제어에 설명되어 있습니다. 다음 표에는 멤버 함수와 friend 함수의 동작 방식이 요약되어 있습니다.
함수 동작 요약
함수 형식 |
기본 클래스에서 상속되는지 여부 |
가상 함수일 수 있는지 여부 |
값 반환 가능 여부 |
멤버 함수/friend 함수 |
사용자가 함수를 생성하지 않으면 컴파일러에서 생성하는지 여부 |
---|---|---|---|---|---|
생성자 |
아니요 |
아니요 |
아니요 |
멤버 |
예 |
복사 생성자 |
아니요 |
아니요 |
아니요 |
멤버 |
예 |
소멸자 |
아니요 |
예 |
아니요 |
멤버 |
예 |
변환 |
예 |
예 |
아니요 |
멤버 |
아니요 |
할당(operator=) |
아니요 |
예 |
예 |
멤버 |
예 |
new |
예 |
아니요 |
void* |
정적 멤버 |
아니요 |
삭제 |
예 |
아니요 |
void |
정적 멤버 |
아니요 |
기타 멤버 함수 |
예 |
예 |
예 |
멤버 |
아니요 |
friend 함수 |
아니요 |
아니요 |
예 |
Friend |
아니요 |