2 wddpfx wddpfx 于 2016.03.05 09:09 提问

关于c++转发中函数参数的问题?

图片说明图片说明
(上面两个图片顺序错了)用flip2调用函数g时:flip2(g,i,42)传给g中i的实参是42,那么为什么说错误:不能从一个左值实例化int&&?函数参数与其他任何变量一样,都是左值表达式。又是什么意思?

3个回答

WinsenJiansbomber
WinsenJiansbomber   2016.03.05 13:39

这些书就会玩术语,让术语把读者搞死

u013596119
u013596119   Rxr 2016.03.05 14:38

flip2接受的i是右值,因为它是根据模板引用,然后进入g,flip2把i传给g,这个时候i就变成了左值,因为“函数参数与其他任何变量一样,都是左值表达式”,所以g的第二个参数是可以正确接受但是i却不能被接受,因为g的第一个参数需要为右值引用但是flip2给的却是左值表达式

oyljerry
oyljerry   Ds   Rxr 2016.03.05 16:10

t1是右值参数,不能传递左值做参数

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
JSP中关于转发和重定向的问题
在JSP中,我们通常会遇到页面跳转的问题,这时候,我们有li
关于dladdr函数参数的问题
<!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> The dladdr() function queries the dynamic linker for information aboutthe
关于main()函数参数的问题
使用main函数的参数,实现一个整数计算机,“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法。 实现的函数如下: #include #include int main(int argc,char *argv[]) {    int i=0;  int num1,num2;  int ret;  printf("请输入两个操作
关于转发重定向问题
重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。 与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL, 而当使用转发时,该URL会保持不变。重定向的速度比转发慢,因为浏览器还得发出一个新的请求。同时,由于重定向方式产
关于struts2x中转发问题
很多人刚开始接触struts2时,想通过引导页面index.jsp转发到受保护的页面时,服务器返回404。 今天不卖关子,直接告诉大家解决方案: 记住加上请求转发的指令!其中包括:REQUEST,FORWARD。如果不加以配置,服务器默认只接受REQUEST请求。
关于QObject::connect函数参数问题
1: 首先要链接的两个类必须继承与QObject,同时添加 Q_OBJECT; 2:在qt中QObject::connect中填写的signal和slot函数,一定要填写参数类型; 因为类中的函数可以,也就是,重载函数名一样,参数不一样,如果QObject::connect中的函数没有参数类型,则无法正确连接; 3: QObject::connect中的s
关于js函数参数多少的问题
js函数的参数与大多数其他语言中的函数的参数有所不同。js函数不介意传递进来多少个参数(和java中方法重载不一样,js对于参数多少不介意),也不在乎穿进来参数是什么数据类型。也就是是说,即便你定义的函数值接受两个参数,在调用这个函数时也未必一定要是两个参数。可以传递一个、三个甚至不传递参数,而解析器永远不会有什么怨言。之所以会这样,原因是js中的参数在内部是用一个数组来运行的。函数接受到的永远是...
关于二维数组当做函数参数的问题
其实本文章来自 网络文章的拼凑,并非绝对意义上的原创。 在C语言中可以用二维数组作为实参或者形参。 1、函数中用二维数组作为形参,函数声明中可以指定所有维数的大小,也可以省略第1维的维数如 void f(int array[3][10]); //正确 void f(int array[][10]);  //正确 2、函数中用二维数组作为形参,不能把第2维或者更高维的大小省略,
C关于函数参数的传递
菜鸟第一发小总结 一个C文件的参数传递可以有三个方法 1.全局变量 不用在主函数和子函数中定义变量名,而且可以随意对这个变量进行操作,子函数不用返回值。 2.指针 需要定义变量名,传递的是指针所以传递比较方便,可以对传递过来的变量进行操作,同样不用返回值 3.参数名 需要定义,不对原变量进行改变,相当于重新拷贝了一份,如果目的是对原变量操作则不应采取这种方式。 总之,全局变量的使用
关于C/C++的二维数组作为函数参数问题
在写AncientMessages这道搜索题的过程中,因为代码有点啰嗦,所以就写了一个函数,刚好涉及到如何传递二维数组作为函数的参数。 传统的写法 int arr[3][3]; void show(int arr[][3],int n) { for(int i=0;i&amp;lt;n;i++) for(int j=0;j&amp;lt;3;j++) p...