C++中关于函数返回用户自定义类型是左值还是右值?
今天在VC中写了如下一个测试程序,发现如果函数返回类型为用户自定义类型,
那么返回值可以作为左值被修改,但是内置类型好象不行,而我感觉返回值应该是右值.到底是我错了还是编译器问题?好象在.net中下面同样可以编译并正常运行~
struct st{
int a;
int b;
int c;
int d;
st(){}
st(const st& stst){a=stst.a;b=stst.b;c=stst.c;d=stst.d;}
};
st func(st k)
{
k.a = 0;
return k;
}
int main()
{
st aa,bb;
func(aa)=bb;
return 0;
}