当前位置:  开发笔记 > 编程语言 > 正文

带引号的临时对象和参数的规则

如何解决《带引号的临时对象和参数的规则》经验,为你挑选了2个好方法。

说我上课了:

class A
{
 public:
 A() {}
};

和功能:

void x(const A & s) {}

我这样做:

x(A());

有人可以向我解释有关通过引用传递临时对象的规则吗?就编译器允许的内容而言,在需要const的地方,如果发生隐式副本等等.从游戏中看,你似乎需要有意义的const,但有关于所有这些的正式规则吗?

谢谢!



1> 小智..:

有一个正式的规则 - C++标准(如果你感兴趣,请参见第13.3.3.1.4节)声明临时只能绑定到const引用 - 如果你尝试使用非const引用,编译器必须将其标记为一个错误.



2> 小智..:

Herb Sutter在这里做了很好的解释:http://www.gotw.ca/gotw/081.htm

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有