| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1787 人关注过本帖
标题:[求助]重载
只看楼主 加入收藏
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
 问题点数:0 回复次数:20 
[求助]重载

为什么老是说我重载<<运算符错误?
ostream &operator<<(ostream &os,const Date &d)
{
os<<ye<<"/"<<mo<<"/"<<da<<endl;
return os;
}

std::ostream& Date::operator<<(std::ostream&, const Date&)' must take exactly one argument

为什么说只能一个参数?

搜索更多相关主题的帖子: 重载 
2006-05-10 18:06
zinking
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:35
帖 子:916
专家分:0
注 册:2004-12-5
收藏
得分:0 
[QUOTE]ostream &operator<<(ostream &os,const Date &d)
{
os<<ye<<"/"<<mo<<"/"<<da<<endl;
return os;
}[/QUOTE]
问题不在那儿,肯定是程序的其他部分有问题的。比如我问一下那个ye 和da声明了吗?
编译器报错并不是每一个都很准确的恶

http://kongfuziandlife. http://codeanddesign.
2006-05-10 22:59
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
当然声明了啊,他们是私有成员啊。我已经遇见过几次这样的情况了,害我每次都是用成员函数display

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-10 23:20
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

#include <iostream>
using namespace std;

class stu
{
int x,y;
public:
stu(int m,int n):x(m),y(n){}
ostream &operator<<(ostream&os,const stu&s)
{os<<s.x<<endl<<s.y;return os;}
};
int main()
{
stu s(1,2);
cout<<s;
system("pause");
return 0;
}
这应该没错吧,但是还是不行,晕


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-10 23:24
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

我是XP的系统啊,虽然不是较新的版本,但怎么说也是32位,怎么会这样啊


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-11 10:02
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
能这样重载么?我怎么没听过?cout&lt;&lt;s语句中&lt;&lt;操作符是被cout执行的,cout可以算是ostream类型的对象,你在class stu中帮ostream类重载操作符&lt;&lt;  

世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-05-11 10:32
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
我看的书上就是这样重载的,不知道。谢谢你给我写一个吧

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-11 11:24
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
我本意你应该看得出来,就是为了方便输出,重载&lt;&lt;运算符,这里需要怎么改?》

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-11 11:25
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 
声明为友员函数了么?

2006-05-11 11:46
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
不好意思,我记错了,你用
friend ostream& operator<<(ostream &os,const stu &s)
就可以了

世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-05-11 13:35
快速回复:[求助]重载
数据加载中...
 
   



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

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