Мы можем использовать const_cast для передачи константного аргумента данных функции, параметр которой не является константой.
int fun(int* ptr)
{
return (*ptr + 10);
}
int main(void)
{
int val = 10;
const int *ptr = &val;
int *ptr1 = const_cast <int *>(ptr);
cout << fun(ptr1);
return 0;
}
Output:
20
Но мы также можем добиться приведения следующим образом:
int fun(int* ptr)
{
return (*ptr + 10);
}
int main(void)
{
int val = 10;
const int *ptr = &val;
int *ptr1 = (int *)ptr;
cout << fun(ptr1);
return 0;
}
Выход: 20
Тогда какая необходимость в использовании const_cast в этом конкретном сценарии? Есть ли преимущество использования const_cast только в этом конкретном сценарии?
(int*)в этом случае совпадает сconst_cast<int*>. - person Simple   schedule 30.01.2014