请大家看看我对operator定义哪儿错了?

zhaobong 2002-05-20 06:46:19
#include<iostream>

using namespace std;

class myadd
{
public:
myadd& operator=(const myadd& rhs)
{
return *this;
}
int data;
};

void main()
{
myadd A,B;
A.data=10;
B=A;
cout<<A.data<<endl;
cout<<B.data<<endl;
}

这个程序在VC中编译通过,但是在最后测试时B.data输出的好像是一个地址,而不是10。
...全文
97 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaobong 2002-05-20
  • 打赏
  • 举报
回复
哦,对的,我想起来了,我在《Essential C++》中看到过,结果粗心忘了。谢谢了,散分。
fsht 2002-05-20
  • 打赏
  • 举报
回复
恩,同意大头
dreamhead 2002-05-20
  • 打赏
  • 举报
回复
我知道正常的习惯写法是
myadd& operator=(const myadd& rhs)
{
if (this == &rhs)
return *this;
data = rhs.data
return *this;
}

你的程序中忘了前面两条,很有可能是B.data没有初始化。
Franz 2002-05-20
  • 打赏
  • 举报
回复
myadd& operator=(const myadd& rhs)
{
data = rhs.data;
return *this;
}

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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