| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 897 人关注过本帖
标题:重载中很奇怪
只看楼主 加入收藏
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
大致看了一下你的代码,不过我不明白为什么你第二个代码能跑。你能编译这段代码吗?
程序代码:
#include <iostream>
using namespace std;

class A {
public:
  A& operator= (A&) { return *this; };
};

int main()
{
  A a;
  a = A();

  return 0;
}



[ 本帖最后由 pangding 于 2013-1-22 11:58 编辑 ]
2013-01-22 11:57
chinawide
Rank: 1
等 级:新手上路
帖 子:13
专家分:2
注 册:2013-1-21
收藏
得分:0 
回复 9楼 玩出来的代码
就是在第一个类中的自己写的重载=(Complex& c)加上const就正确了;
而第二个不用加也是对的,就不知道为什么会出现这样的情况
2013-01-22 11:59
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
菜鸟学习,顺便路过

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-22 12:01
chinawide
Rank: 1
等 级:新手上路
帖 子:13
专家分:2
注 册:2013-1-21
收藏
得分:0 
回复 11楼 pangding
不能,加const就可以了在=重载的时候,这是为什么呢
2013-01-22 12:06
chinawide
Rank: 1
等 级:新手上路
帖 子:13
专家分:2
注 册:2013-1-21
收藏
得分:0 
回复 10楼 chinawide
写的好好的传上去怎么就少了很多的
2013-01-22 12:08
chinawide
Rank: 1
等 级:新手上路
帖 子:13
专家分:2
注 册:2013-1-21
收藏
得分:0 
以下是引用pangding在2013-1-22 11:57:15的发言:

大致看了一下你的代码,不过我不明白为什么你第二个代码能跑。你能编译这段代码吗?
#include  
using namespace std;
 
class A {
public:
  A& operator= (A&) { return *this; };
};
 
int main()
{
  A a;
  a = A();
 
  return 0;
}
第二段确实是可以的,我就奇怪了
2013-01-22 12:11
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
以下是引用chinawide在2013-1-22 12:06:27的发言:

不能,加const就可以了在=重载的时候,这是为什么呢

不能报的错是什么?你的第一段代码报的错是什么?提供一些详细信息。
2013-01-22 12:14
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:0 
Complex(real=0,image=0):real(real),image(image){}
Complex c1(10,20),c2(12,24).c3;这两句没问题? 你用什么编译器

离恨恰如春草,更行更远还生。
2013-01-22 12:22
chinawide
Rank: 1
等 级:新手上路
帖 子:13
专家分:2
注 册:2013-1-21
收藏
得分:0 
以下是引用pangding在2013-1-22 12:14:54的发言:


不能报的错是什么?你的第一段代码报的错是什么?提供一些详细信息。
报的错都是一样的,"no match 为operator=在、、中
  备选为Complex& Complex::operator=(Complex&)
2013-01-22 12:59
chinawide
Rank: 1
等 级:新手上路
帖 子:13
专家分:2
注 册:2013-1-21
收藏
得分:0 
以下是引用玩出来的代码在2013-1-22 12:22:32的发言:

Complex(real=0,image=0):real(real),image(image){}
Complex c1(10,20),c2(12,24).c3;这两句没问题? 你用什么编译器
这个是我自己打上去的。我写代码的在另一个电脑上,所以刚才太急了,没注意到
2013-01-22 13:00
快速回复:重载中很奇怪
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017349 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved