我们可以使用 const_cast 将 const 数据参数传递给参数为非常量的函数。
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 有什么好处吗?