这是我身边一个同学的代码:
#include<iostream>
#include<string>
const int N = 3;
class Student
{
private:
std::string name, id;
double score[N];
static int fail_sum, sum;
public:
//输入各科成绩与平均成绩
std::istream& Cin(std::istream& in);
double mean_score()
{
double ans = 0;
for (int i = 0; i < N; i++)
ans += score[i];
return ans / N;
}
static void get();
void show_score()
{
std::cout << "程序设计、信号处理、数据结构三门课程的成绩分别为:";
for (int i = 0; i < N; i++)
{
std::cout << this->score[i] << "、";
}
std::cout << std::endl;
std::cout << "该学生的平均成绩为: " << this->mean_score() << std::endl;
}
};
int Student::fail_sum = 0;
int Student::sum = 0;
void Student::get()
{
std::cout << "学生总数与不及格学生总数分别为:" << Student::sum << "人和" << Student::fail_sum << "人" << std::endl;
}
std::istream& Student::Cin(std::istream& in)
{
++sum;
in >> name;
in >> id;
for (int i = 0; i < N; ++i) {
in >> score[i];
}
if (mean_score() < 60.0) ++fail_sum;
return in;
}
int main()
{
Student test[3];
for (int i = 0; i < 3; i++)
{
test[i].Cin(std::cin);
}
for (int i = 0; i < 3; i++)
{
test[i].show_score();
}
Student::get();
}
请问下面这段代码是什么意思,我看不懂,涉及哪一块的知识呢?istream到底是个啥东西呢?
std::istream& Student::Cin(std::istream& in)
{
++sum;
in >> name;
in >> id;
for (int i = 0; i < N; ++i) {
in >> score[i];
}
if (mean_score() < 60.0) ++fail_sum;
return in;
}