const_cast 연산자
제거는 const, volatile, 및 >__unaligned 특성 클래스에서입니다.
const_cast < type-id > ( expression )
설명
모든 개체 형식에 대 한 포인터 또는 포인터 데이터 멤버를 명시적으로를 제외 하 고 동일한 형식으로 변환할 수 있습니다 해당 const, volatile, 및 >__unaligned 한정자입니다.포인터와 참조의 결과 원래 개체를 참조 합니다.데이터 멤버에 대 한 포인터 데이터 멤버 (uncast) 원래 포인터와 동일한 멤버 결과 이라고 합니다.참조 된 개체의 형식에 따라 결과 포인터, 참조 또는 데이터 멤버에 대 한 포인터를 통해 쓰기 작업이 정의 되지 않은 동작이 발생할 수 있습니다.
사용할 수 없습니다의 const_cast 연산자를 직접 상수 변수에 상수 상태를 다시 정의할 수 있습니다.
const_cast 연산자 대상 형식의 null 포인터 값을 null 포인터 값을 변환 합니다.
예제
// expre_const_cast_Operator.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
class CCTest {
public:
void setNumber( int );
void printNumber() const;
private:
int number;
};
void CCTest::setNumber( int num ) { number = num; }
void CCTest::printNumber() const {
cout << "\nBefore: " << number;
const_cast< CCTest * >( this )->number--;
cout << "\nAfter: " << number;
}
int main() {
CCTest X;
X.setNumber( 8 );
X.printNumber();
}
포함 하는 줄에는 const_cast, 데이터 형식에 this 포인터입니다 const CCTest *.const_cast 운영자의 데이터 형식을 변경는 this 포인터를 CCTest *, 멤버를 허용 number 수정 될 수 있습니다.캐스팅 나타나는 설명의 나머지에만 지속 됩니다.