为什么const_cast没有修改调用方函数中的值?

为什么const_cast没有修改调用方函数中的值?,第1张

为什么const_cast没有修改调用方函数中的值?

const_cast是否有某种未定义的行为?

是的 ,您的程序包含未定义的行为。

这意味着您不能对它的输出有任何期望。原因由C ++ 11标准的7.1.6.1/4给出:

除了可以声明任何声明的类成员

mutable
(7.1.1)之外,在
const
对象的生存期内(3.8)进行任何尝试修改都会导致未定义的行为

第5.2.11 / 7段

const_cast
包含进一步的警告:

[
:取决于对象的类型,通过指针,左值或指向数据成员的指针的写 *** 作可能会产生不确定的行为(7.1.6.1)

const_cast
,该 *** 作会抛弃
const
-qualifier。—
尾注 ]



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

原文地址:https://54852.com/zaji/5018907.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-15

发表评论

登录后才能评论

评论列表(0条)

    保存