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 개체입니다.