class X{public: X& operator=(const X& rhs); const X& operator+(const X& rhs)const; const X& operator+(int m);private: int n;};int main(){ X a,b,c; //statements go here return 0;}
问下面哪个选项的语句是不合法的? 1) a = b + 5; 2) a =a +5 +c; 3) (c=a+a)=b+c; 4) a = b+c+5;
真心不会,求教各位给出正确答案,最好指出错误选项为什么不合法?
[解决办法] a = b+c+5;不合法 b+c会调用到const X& operator+(const X& rhs)const 返回值是const X & 而const X& operator+(int m);不是const成员函数