c++中临时变量不能作为非const的引用参数的方法(const,变量,引用,编程语言)

时间:2024-04-30 02:56:21 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

    c%2B%2B%E4%B8%AD%E4%B8%B4%E6%97%B6%E5%8F%98%E9%87%8F%E4%B8%8D%E8%83%BD%E4%BD%9C%E4%B8%BA%E9%9D%9Econst%E7%9A%84%E5%BC%95%E7%94%A8%E5%8F%82%E6%95%B0%E7%9A%84%E6%96%B9%E6%B3%95

上面的程序编译通过,而且运行结果是:

临时变量确实被赋值,而且成功了。

所以,临时变量不能作为非const引用参数,不是因为他是常量,而是因为c++编译器的一个关于语义的限制。如果一个参数是以非const引用传入,c++编译器就有理由认为程序员会在函数中修改这个值,并且这个被修改的引用在函数返回后要发挥作用。但如果你把一个临时变量当作非const引用参数传进来,由于临时变量的特殊性,程序员并不能操作临时变量,而且临时变量随时可能被释放掉,所以,一般说来,修改一个临时变量是毫无意义的,据此,c++编译器加入了临时变量不能作为非const引用的这个语义限制,意在限制这个非常规用法的潜在错误。

还不明白?OK,我们说直白一点,如果你把临时变量作为非const引用参数传递,一方面,在函数申明中,使用非常量型的引用告诉编译器你需要得到函数对某个对象的修改结果,可是你自己又不给变量起名字,直接丢弃了函数的修改结果,编译器只能说:“大哥,你这是干啥呢,告诉我把结果给你,等我把结果给你了,你又直接给扔了,你这不是在玩我呢吗?”所以编译器一怒之下就不让过了。这下大家明白了吧?

以上这篇c++中临时变量不能作为非const的引用参数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

本文:c++中临时变量不能作为非const的引用参数的方法的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:外卖小程序标题栏的样式及底栏怎么添加下一篇:

7 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18