标题:求教各位大侠如何如何重载运算符<<和>>!!
只看楼主
a632034079
Rank: 2
等 级:论坛游民
帖 子:115
专家分:34
注 册:2009-10-3
结帖率:86.11%
已结贴  问题点数:20 回复次数:2 
求教各位大侠如何如何重载运算符<<和>>!!
“<<”和“>>”怎么重载啊………………

实在是搞的糊涂了,自己编的代码,错误一大片………………希望各位大大们,给个代码让我参考参考
搜索更多相关主题的帖子: 载运 算符 
2010-01-15 10:45
无诲今生
Rank: 8Rank: 8
来 自:桂林理工大学
等 级:蝙蝠侠
威 望:2
帖 子:373
专家分:726
注 册:2009-5-11
得分:10 
ostream& operator<<(ostream& os,const List<Date>& rl)//重载<<运算符
{
    Date temp;//定义结构体变量
    for(int i=0;i<rl.size();i++)//遍历链表
    {
        rl.retrieve(i,temp);//复制数据
        os<<temp.name<<'\n'<<temp.count<<'\n';//把数据定向到输出流
    }
    return os;//反回输出流对像
}

istream& operator>>(istream& is,List<Date>& rl)//重载<<运算符
{
    Date rec;//定义结构体变量
    string name;//定定义暂时字符串变量
    while (true)
    {
        getline(is,name);//从输入流中获取数据,并存在name变量中
        if(name=="")//当输入流为空时,退出循环
            break;
    rec.name=name;//把获取的数赋给结构体变量成员
    getline(is,name);//再从输入流中获取数据,并存在name变量中
    rec.count=atof(name.c_str()); //把字符串转换成浮点型
    rl.insert(rl.size(),rec);//把rec插入链表中
    }
    return is;//反回输入流对象
}

这是对链表的读入文件和从文件的内容读入链表的例子

顺境逆境切莫止境,得意失意切莫在意。
2010-01-15 13:26
mfkblue
Rank: 5Rank: 5
等 级:职业侠客
帖 子:472
专家分:343
注 册:2008-12-21
得分:10 
#include <iostream.h>
#include <string.h>
class person
{
public:
    friend istream& operator>>(istream& instr,person& thing);
    friend ostream& operator<<(ostream& outstr,person& thing);
protected:
    char name[10];
    int number;
};

 istream& operator>>(istream& instr,person& thing)
 {
 instr>>thing.name>>thing.number;
 return instr;
 }

 ostream& operator<<(ostream& outstr,person& thing)
 {
 outstr<<thing.name<<" "<<thing.number<<endl;
 return outstr;
 }

 void main()
 {
    person A;
    cin>>A;
    cout<<A;
 }
不用注解了吧 ,简单明了
2010-01-15 14:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-295785-1-1.html




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

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