亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
在等號(hào)左邊就是左值嗎? 臨時(shí)變量在等號(hào)左邊,算左值還是右值?
[打印本頁]
作者:
asker160
時(shí)間:
2016-07-01 09:39
標(biāo)題:
在等號(hào)左邊就是左值嗎? 臨時(shí)變量在等號(hào)左邊,算左值還是右值?
本帖最后由 asker160 于 2016-07-01 19:54 編輯
int a=1;//這個(gè)a是左值無疑嗎?
復(fù)制代碼
int a;
a=1;
int *b;
*b=a;//這個(gè)*b是左值嗎?
復(fù)制代碼
問題,我可以構(gòu)造一個(gè)臨時(shí)變量,讓它出現(xiàn)在等號(hào)的左邊,如下:
#include<iostream>
using namespace std;
struct A{
int m_i;
A(int i):m_i(i){}
A& operator=(int i){
m_i=i;
return *this;
}
A operator+(const A&other){
return A(m_i+other.m_i);
}
~A(){cout<<m_i<<endl;}
};
int main()
{
A a1(2);
A a2(3);
(a1+a2)=5;//這里的(a1+a2)是左值還是右值?
return 0;
}
復(fù)制代碼
上面的main函數(shù)中,a1+a2構(gòu)造了一個(gè)臨時(shí)變量,它出現(xiàn)在等號(hào)左邊。那么它到底算左值還是右值,還是別的?
作者:
cjfeii
時(shí)間:
2016-07-22 11:50
a1+a2 的結(jié)果是一個(gè)對(duì)象,是一個(gè)臨時(shí)變量,他是左值。
作者:
cjfeii
時(shí)間:
2016-07-22 11:51
作用域很小:
$ g++ a.cpp
$ ./a.out
5
3
2
復(fù)制代碼
作者:
cclxpp123
時(shí)間:
2016-08-02 21:13
本帖最后由 cclxpp123 于 2016-08-02 21:31 編輯
a1+a2創(chuàng)造了一個(gè)臨時(shí)對(duì)象,是一個(gè)xvalue.
左值與右值的根本區(qū)別在于是否允許取地址&運(yùn)算符獲得對(duì)應(yīng)的內(nèi)存地址。能得到地址的為左值,我們知道它在內(nèi)存中的具體位置;右值是臨時(shí)變量,得不到地址,但可以通過std::move()函數(shù)轉(zhuǎn)化為左值
歡迎光臨 Chinaunix (http://72891.cn/)
Powered by Discuz! X3.2