平凡的天才

目的是为人类造福
posts - 20, comments - 41, trackbacks - 0, articles - 6
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

关于输出重载

Posted on 2006-12-14 22:58 平凡的天才 阅读(773) 评论(1)  编辑 收藏 引用

自己一直以为输出重载非常简单,所以从来没有亲手写过,今天看到一本上上面应该这方面的介绍,就忍不住试了一下,果然问题百出,
在6.0中要重载<<时,不能使用如下的头文件:
#include<iostream>
using namespace std;
而应该使用程序代码中所用的形式,具体原因我没有深入研究,望高人指点

#include<iostream.h>
//using namespace std;

class Rational
{
public:
 Rational(int numerator=0,int denominator=1)
 {
  n=numerator;
  d=denominator;
 }

private:
 int n,d;

friend ostream& operator<<(ostream& s,const Rational& r);
};

ostream& operator<<(ostream& s,const Rational& r)
{
 s<<r.n<<'/'<<r.d;
 return s;
}


int main()
{
 Rational rTemp;
 cout<<rTemp<<endl;

 return 1;
}

Feedback

# re: 关于输出重载  回复  更多评论   

2006-12-16 20:35 by syy
这是VC++6.0的一个BUG,打了SP5或者SP6才能解决。
现在建议还是用VC++2005吧,对C++标准支持比6.0好很多很多。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理