在释放const数据的内存时,为什么我需要const_cast它。如果我忽略它将会是什么结果。
答案 0 :(得分:7)
你没有。这是完全有效的,符合标准的代码:
int const * const a = new int(42);
delete a;
听起来您使用std::free
中的<cstdlib>
来代替这一点,签名是
void free(void *);
在这种情况下,从int const * const
到void *
的隐式转换失败,因为您只能隐式const-cast,而不能转换const。无论如何,你想要第一个C ++版本。