对象数组和指针问题
这段代码是老谭的一道习题,总是报错,提示私有成员不能访问
#include<iostream>
using namespace std;
class Student
{
public:
Student(int n,int s):num(n),score(s){};
void display();
private:
int num;
int score;
};
void Student::display()
{
cout<<"num:"<<num<<"\n"<<"score:"<<score<<endl;
}
int main()
{
Student stud[5]={Student(1001,100),Student(1002,99),Student(1003,98),Student(1004,97),Student(1005,96)};
void max(Student *);
Student *p=&stud[0];
max(p);
return 0;
}
void max(Student *arr)
{
int max_score=(arr+0)->score;
int k=0;
for(int i=1;i<5;i++)
{
if((arr+i)->score>max_score)
{
max_score=(arr+i)->score;
k=i;
}
}
cout<<(arr+k)->num<<":"<<max_score<<endl;
}
#include<iostream>
using namespace std;
class Student
{
public:
Student(int n,int s):num(n),score(s){};
void display();
private:
int num;
int score;
friend void max(Student *arr);
};
void Student::display()
{
cout<<"num:"<<num<<"\n"<<"score:"<<score<<endl;
}
int main()
{
Student stud[5]={Student(1001,100),Student(1002,99),Student(1003,98),Student(1004,97),Student(1005,96)};
Student *p=&stud[0];
max(p);
return 0;
}
void max(Student *arr)
{
int max_score=(arr+0)->score;
int k=0;
for(int i=1;i<5;i++)
{
if((arr+i)->score>max_score)
{
max_score=(arr+i)->score;
k=i;
}
}
cout<<(arr+k)->num<<":"<<max_score<<endl;
}