为const数据释放内存时,为什么需要const_cast

时间:2013-09-02 07:39:40

标签: c++

在释放const数据的内存时,为什么我需要const_cast它。如果我忽略它将会是什么结果。

1 个答案:

答案 0 :(得分:7)

你没有。这是完全有效的,符合标准的代码:

int const * const a = new int(42);
delete a;

听起来您使用std::free中的<cstdlib>来代替这一点,签名是

void free(void *);

在这种情况下,从int const * constvoid *的隐式转换失败,因为您只能隐式const-cast,而不能转换const。无论如何,你想要第一个C ++版本。

相关问题