为什么错啊?

taylorwc 2003-03-13 04:10:18
#include <iostream>
#include <afx.h>
using namespace std;

void main()
{
void operator<<(ostream & os,const CTime & t)
{
os<<t.hour<<" hours,"<<t.minutes<<" minutes.";
}
CTime theTime = CTime::GetCurrentTime();
cout<<theTime;

}
...全文
29 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinajiji 2003-03-13
  • 打赏
  • 举报
回复
t.hour是不是私有member?我没用过CTime,如果是,这样改:

return os<<t.GetHour()<<" hours,"<<t.GetMinutes()<<" minutes.";
chinajiji 2003-03-13
  • 打赏
  • 举报
回复
return os<<t.hour<<" hours,"<<t.minutes<<" minutes.";
这句加个return是为了打连发机关枪,如:

cout << theTime1 << theTime2 << endl;
chinajiji 2003-03-13
  • 打赏
  • 举报
回复
yuanhen(Thinkpad T40 头坑王):
不定义这个operator<<了行不行?
再不行,我就格式化硬盘,看行不行,哈哈.
taylorwc 2003-03-13
  • 打赏
  • 举报
回复
为什么要这样的呢?解释下,谢谢.
chinajiji 2003-03-13
  • 打赏
  • 举报
回复
ostream& operator<<(ostream & os,const CTime & t)
{
return os<<t.hour<<" hours,"<<t.minutes<<" minutes.";
}

int main() {
CTime theTime = CTime::GetCurrentTime();
cout<<theTime;
return 0;
}
yuanhen 2003-03-13
  • 打赏
  • 举报
回复
就是函数外也是不可以的
yuanhen 2003-03-13
  • 打赏
  • 举报
回复
你重载<<不是很有问题吗?
chinajiji 2003-03-13
  • 打赏
  • 举报
回复
不能在函数体内(包括main函数)内定义一个函数,

void operator<<(ostream & os,const CTime & t)
{
os<<t.hour<<" hours,"<<t.minutes<<" minutes.";
}

int main() {
CTime theTime = CTime::GetCurrentTime();
cout<<theTime;
return 0;
}

69,369

社区成员

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

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