This이 포인터의 형식

함수 선언에서 포인터의 형식을 수정할 수 있습니다의 const 및 volatile 키워드입니다.특성을 하나 이상 이러한 키워드는 함수를 선언 하 고 함수 인수 목록 후 키워드를 추가 합니다.

다음 예제를 고려해 보십시오.

// type_of_this_pointer1.cpp
class Point
{
    unsigned X() const;
};
int main()
{
}

앞의 코드는 멤버 함수를 선언 X은 으로 포인터를 처리는 const 에 대 한 포인터는 const 개체.조합 cv mod 목록 옵션을 사용할 수 있지만 항상가 가리키는 개체를 수정할 , 하지의 포인터 자체가.따라서, 다음과 같은 선언을 함수 선언 X. 포인터는 const 에 대 한 포인터는 const 개체:

// type_of_this_pointer2.cpp
class Point
{
    unsigned X() const;
};
int main()
{
}

종류를 멤버 함수는 다음 구문으로 설명 위치 cv 한정자 목록 멤버 함수 선언 자에서 결정 되 고 될 수 있습니다 const 또는 휘발성 (또는 둘 모두), 및 클래스 형식 클래스의 이름입니다:

[cv 한정자 목록] 클래스 형식의 *const이  

즉, 항상 const 포인터;입니다 다시 할당 될 수 없습니다.Const 또는 volatile 멤버 함수 선언에 한정자가 적용의 클래스 인스턴스를 가리키는 는 해당 함수 범위에 있습니다.

다음 표에서 이러한 한정자를 작동 방법에 대 한 더 설명 합니다.

이 한정자의 의미

한정자

의미

const

멤버 데이터를 변경할 수 없습니다. 없는 멤버 함수를 호출할 수 없습니다 const.

volatile

구성원 데이터를 액세스할 때마다 메모리에서 로드 됩니다. 특정 최적화를 비활성화합니다.

전달할 오류입니다 있는 const 개체가 아닌 멤버 함수를 const.전달할 오류입니다. 마찬가지로 volatile 개체가 아닌 멤버 함수의 volatile.

멤버 함수를 선언 하는 const 멤버 데이터를 변경할 수 없습니다-와 같은 기능에는 포인터에 대 한 포인터입니다.는 const 개체입니다.

[!참고]

생성자와 소멸자가 선언할 수 없습니다로 const 또는 volatile.그러나 될 수 있습니다, 호출에서 const 또는 volatile 개체입니다.

참고 항목

참조

이 포인터