다음을 통해 공유


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 수정 될 수 있습니다.캐스팅 나타나는 설명의 나머지에만 지속 됩니다.

참고 항목

참조

캐스팅 연산자

C + + 키워드