const의 성향을 제거해 주는 캐스팅.

원본의 const는 제거할 수 없음.

 

#include <iostream>
#include "String.h"
 
using std::cout;
using std::endl;
 
int volotileFunc()
{
    // volatile 컴파일 타임 최적화를 하지 않겠다.
    // 매번 메모리에서 읽어서 사용하겠다.
    volatile int i = 0;
    i++;
    i++;
    i++;
    return i;
}
 
void func(const int& i)
{
    int& j = const_cast<int&>(i); // 상수성을 제거해준다.
    j = 10;
}
 
int main()
{
    int i = 0;
    func(i);
 
    cout << i << endl;
 
    const int j = 0// 원본인 const인 경우 문제가 될 수 있다
    func(j); // 정의되지 않은 행동
 
    cout << j << endl;
 
    stringFunc();
}
cs

'::public > C++' 카테고리의 다른 글

reinterpreter_cast  (0) 2020.12.11
dynamic_cast  (0) 2020.12.11
static_cast  (0) 2020.12.11
형 변환 규칙  (0) 2020.12.11
다중 상속  (0) 2020.11.27

+ Recent posts