c – const_cast比普通演员更安全吗?

c – const_cast比普通演员更安全吗?,第1张

概述哪个更安全? int main(){ const int i=5; int *ptr; ptr=(int*)&i; <------------------- first ptr=const_cast<int*>(&i); <-------------------Second return 0;} 从某种意义上说,你不会获得除了删除const之外的其他东 哪个更安全?

int main(){    const int i=5;    int *ptr;    ptr=(int*)&i; <------------------- first    ptr=const_cast<int*>(&i); <-------------------Second    return 0;}
解决方法 从某种意义上说,你不会获得除了删除const之外的其他东西,这样更安全:

int main(){    const char i=5;    int *ptr;    ptr=(int*)&i;  // the compiler won't complain    ptr=const_cast<int*>(&i); // will fail,since `i` isn't an int    return 0;}

这并不意味着const_cast<>是安全的:

const int i=5;int main(){    int const& cri(i);    int& ri = const_cast<int&>(cri);  // unsafe    ri = 0; // will likely crash;    return 0;}
总结

以上是内存溢出为你收集整理的c – const_cast比普通演员更安全吗?全部内容,希望文章能够帮你解决c – const_cast比普通演员更安全吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1220859.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存