回 帖 发 新 帖 刷新版面

主题:这是为什么呢

#include<iostream>
using namespace std;
class A{int a;
int b;
public:
    int geta(){return a;}
    int getb(){return b;}};
ostream & operator<<(ostream &out,A&a){
    out<<a.geta()<<endl<<a.getb()<<endl;
    return (out);}
int main(){A a;
a.geta()=21;
a.getb()=32;
cout<<a;}

pp1.cpp
C:\Users\qz\Desktop\Cpp1.cpp(12) : error C2106: '=' : left operand must be l-value
C:\Users\qz\Desktop\Cpp1.cpp(13) : error C2106: '=' : left operand must be l-value
C:\Users\qz\Desktop\Cpp1.cpp(14) : warning C4508: 'main' : function should return a value; 'void' return type assumed
执行 cl.exe 时出错.

Cpp1.obj - 1 error(s), 0 warning(s)
啥意思呀 ??????????????
    

回复列表 (共2个回复)

沙发

int foo()
{
    return 123;
}

foo() = 456; 你觉得会正确吗

板凳

返回值怎么成左值了……汗

我来回复

您尚未登录,请登录后再回复。点此登录或注册