#include<iostream>
#include<set>
#include<map>
#include<vector>
#include<queue>
#include<cmath>
#include<climits>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
typedef long long LL;
using namespace std;
class Student
{
private:
string name;
string sex;
static const int size_score;
double score[5];
public:
Student();
Student(string iname,string isex,double iscore[]);
Student(const Student &otherStudent);
Student & operator=(const Student &a);
friend istream & operator>>(istream &in,Student &a);
friend ostream & operator<<(ostream &out,Student & a);
double operator[](int i);
};
Student::Student()
{
memset(score,0,sizeof(score));
}
Student::Student(string iname,string isex,double iscore[]):name(iname),sex(isex)
{
for(int i=0; i<size_score; i++)
score[i]=iscore[i];
}
Student::Student(const Student &otherStudent)
{
name=otherStudent.name;
sex=otherStudent.sex;
for(int i=0; i<size_score; i++)
score[i]=otherStudent.score[i];
}
Student & Student::operator=(const Student &a)
{
name=a.name;
sex=a.sex;
for(int i=0; i<size_score; i++)
score[i]=a.score[i];
return *this;
}
istream & operator>>(istream &in,Student &a)
{
in>>a.name>>a.sex;
for(int i=0; i<a.size_score; i++)
in>>a.score[i];
return in;
}
ostream & operator<<(ostream &out,Student & a)
{
out<<a.name<<' '<<a.sex<<' ';
for(int i=0; i<a.size_score; i++)
out<<a.score[i]<<' ';
return out;
}
double Student::operator[](int i)
{
return score[i];
}
const int Student::size_score=5;
int main()
{
Student stu,stu1;
cin>>stu;
stu1=stu;
cout<<stu1<<endl;
cout<<stu[1]<<endl;
return 0;
}
类
最新推荐文章于 2022-08-31 18:07:58 发布