求助:C++对象数组和指针问题
程序目的:建立一个对象数组,内放6个学生数据(学号、成绩),设立一个函数max,使用对象指针作为函数参数,在max函数中找出6个学生中成绩最高者,并输出学号。
代码:
#include<iostream>
using namespace std;
class Student
{
private:
int num;
double score;
public:
Student(int n,double s)
{
num=n;
score=s;
}
~Student()
{ }
friend void max(Student *s,Student *s2);
};
[u]void max(Student *s,Student *s2)
{
double m;
m=s->score;
s2=s;
for(int i=1;i<6;i++,s++)
{
if( m<(s->score) )
{
m=(s->score);
s2=s;
}
}
cout<<s2->num<<endl;
}
int main()
{
Student stu[6]={ Student(1,10),Student(2,20),Student(3,30),
Student(4,40),Student(5,50),Student(6,60)};
Student *a,*b;
max(a,b);
return 0;
}
这个程序编译通过了,但是运行会出现错误,应该是划线部分的错误吧?
希望哪位能给出正确代码最好带有注释。
如果能解释下原代码的错误就更好了。