Visual C++ - const_cast
The object buf holds the string "Test". The object cp is a non constant pointer pointing to constant value. We are going to change the value by doing const_cast. ncp is a non constant pointer pointing to non constant value. ncp is assigned with cp by const_cast. The value is changed using ncp and it directly affects the buf object. Again const char* is converted back to char* pointer using const cast at the last step cncp. cncp is pointing to buf and it is displayed out on the screen.
Source Code
int _tmain(int argc, _TCHAR* argv[])
{
char buf[128] = "Test";
const char *cp = buf;
char *ncp = const_cast(cp); // Converting const char* to char*
strcpy(ncp, "non const write successfull\n\n");
const char *cncp = const_cast(ncp); // Converting char* to const char*
std::cout << cncp; // cncp is pointing to buf
return 0;
}
Output
non const write successfull
|