梅雨季导致皮肤过敏,痒到晚上睡不着。但我一定会坚持的。
题目:5.建立一个对象数组,内放5个学生的数据(学号,成绩),设立一个函数max,用指向对象的指针做函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号;
Note:重点记住对象数组的初始化写法,只有友元函数才能访问类的私有成员数据;
代码:
class Student
{
public:
Student(int n, float s):num(n),score(s){} //声明并定义构造函数;
friend void max(Student *); //声明max为类的友元函数,否则max无法访问private成员;
private:
int num;
float score;
};
void max(Student *s)
{
int index;
int m;
m=s[0].score;
for(int i=0; i<5;i++)
{
if(s[i].score>m)
{
m=s[i].score;
index=i;
}
}cout<<"成绩最高的学生的学号为:"<<s[index].num<<endl;
}
int main()
{
int i;
const int num=5;
Student stud[num]={Student(1,34),Student(2,67),Student(3,98),Student(4,75),Student(5,49)};//定义一个对象数组并赋值;
Student *p; //指向Student类的指针,使其指向数组stud的首地址;
p=stud; //数组名即为数组首地址,不需&;
max(p);
return 0;
}