日志15

在“学生成绩输入及统计输出”一题中

原来我的思路是这样的

#include<iostream>
#include<string>
using namespace std;
struct Student {
    string name;
    int y;
    int g;
    int c;
};
int main (){
int n;
cin>>n;
Student *p= new Student [n];
for(int i=0;i<n;i++)
{
    string m;
    int a,b,c;
    cin>>m>>a>>b>>c;
    p[i]={m,a,b,c};
    cout<<p[i].name<<" "<<p[i].y+p[i].g+p[i].c<<endl;
}
    return 0;
}

原本没觉得有什么问题,但是在学了运算符的重载后,我尝试着对其作出了修改

#include<iostream>
#include<string>
using namespace std;
struct Student {
    string name;
    int y;
    int g;
    int c;
};
istream& operator >>(istream& in,Student &u)
{
    string m;
    int a,b,c;
    cin>>m>>a>>b>>c;
    u={m,a,b,c};
    return in;
}
int main (){
int n;
cin>>n;
Student *p= new Student [n];
for(int i=0;i<n;i++)
{
    cin>>p[i];
    cout<<p[i].name<<" "<<p[i].y+p[i].g+p[i].c<<endl;
}
    return 0;
}

我对提取运算符“>>”进行了重载,令其可以直接输入自定义类型“Student”。

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 09:07
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务