C++ - const_cast
Date: 2020-01-10Last modified: 2022-12-27

O operadorconst_cast
é utilizado para:
- adicionar um modificador
const
a um tipo - remover um modificador
const
de um tipo - adicionar um modificador
volatile
a um tipo - remover um modificador
volatile
de um tipo
#include <iostream>
using namespace std;
void f(int* p) {
cout << *p << endl;
}
int main(void) {
const int a = 10;
const int* b = &a;
// A função f() espera receber um int* e não um const int*
// f(b);
int* c = const_cast<int*>(b);
f(c);
// Lvalue é const
// *b = 20;
// Comportamento indefinido
// *c = 30;
int a1 = 40;
const int* b1 = &a1;
int* c1 = const_cast<int*>(b1);
// o inteiro a1 referenciado por c1 não foi declarado como const
*c1 = 50;
return 0;
}
Referências
- [const_cast operator syntax(https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.cbclx01/keyword_const_cast.htm)