#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中运行没有错误。
#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中运行没有错误。