求助个关于类的问题

nunumi 2012-09-15 02:30:53
定义一个类:
class X {
public:
X&operation=(const X& rhs);
const X& operator+(const X& rhs)const;
const X&operator+(int m);
private:
int n;
};
int main()
{
X a,b,c;
//表达式
return 0;
}
a,a=b+5
b, a=a+5+c
c,(c=a+a)=b+c
d, a=b+c+5
哪一个表达式是错误的。这个类的公共成员函数定义的含义什么,请多多指教
...全文
126 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sgf102100 2012-09-17
  • 打赏
  • 举报
回复
错误显示为:
error C2679: binary '+' : no operator defined which takes a right-hand operand of type 'const int' (or there is no acceptable conversion)
Error executing cl.exe.
sgf102100 2012-09-17
  • 打赏
  • 举报
回复
可是我在编译器里编译显示d有错误呢?
nunumi 2012-09-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

X&operation=(const X& rhs);这个事重载吗?没见过。。。学习下!
[/Quote]是+重载函数
yingzijuntuan 2012-09-15
  • 打赏
  • 举报
回复
X&operation=(const X& rhs);这个事重载吗?没见过。。。学习下!
莫二先生 2012-09-15
  • 打赏
  • 举报
回复
哎呀,写错了。。
重载的是"="和"+"。
"+"包括和X类的对象相加以及和整形变量相加两种。
莫二先生 2012-09-15
  • 打赏
  • 举报
回复
这几个成员函数重载了几个运算符,包括’=‘ , '+ '和 '-'。

表达式c应该是错的。
赋值函数返回值采用了引用传递的方式,这是为了实现链式表达式比如:a=b=c;
当赋值函数的返回值加const修饰时,该返回值的内容不允许被修改,所以(a=b)=c是错误的。
即此处选项c错误。。。

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧