c++类中重载输出和输入符号的时候如何处理枚举数据

#ifndef STUDENT_H
#define STUDENT_H

#include <iostream>
#include <string>
enum SCI{English,Maths,Chinese,no};
class student
{
public:
        student(){science = English;scold =0.0;std::cout << "这是不带参数的" << std::endl ;};

        friend std::istream& operator>>(std::istream& ,  student&);
        friend std: stream& operator<<(std: stream& , const student&);
        ~student(){};
private:        std::string  snumber;   //学号        SCI  science;           //学科        double   scold;         //分数inline std::istream& operator >> ( std::istream& in,  student& rhs){        std:: string  i;        in >> rhs.snumber>> i >> rhs.scold ;        if(in)        {                 if(i == " Chinese")                        rhs.science = Chinese;                if(i == "Maths")                        rhs.science = Maths;                if (i == "Englishi")                        rhs.science = English;                else rhs.science = no;        }        return in;        }inline std: stream& operator << (std: stream& out , const student& lhs){    out  << lhs.snumber << "\t" << lhs.scold << "\t ";        switch(lhs.science)        {        case English : std::cout << " English" << std::endl ;  break;        case Maths :   std::cout << " Maths"  << std::endl ;  break;        case Chinese: std::cout << " Chinese" << std::endl;  break;   //枚举型输出        default :break;        }        return out;}
#endif;
student s1;        cin >> s1 ;       cout << s2 ;}
结果科目的输出项没有,我估计是枚举数据那出错了,谁帮我看下。还有这个程序我在VC++6.0中运行没有错误。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值