建立一个对象数组,内放五个学生的数据(学号,成绩),建立一个函数max,用指向对象的

如题所述

建立对象如下:

class Student

{

public:

    Student(string n,float s):number(n),score(s){}

    friend void max(Student *);  //声明友元函数

private:

    string number; //将学号声明为字符串

    float score;

};

扩展资料

所谓的对象数组,就是指包含了一组相关的对象,但是在对象数组的使用中一定要清楚一点:数组一定要先开辟空间,但是因为其是引用数据类型,所以数组里面的每一个对象都是null值,则在使用的时候数组中的每一个对象必须分别进行实例化操作。

对象数组的声明:

先定义,再开辟空间

类名称 对象数组名[] = null; 

对象数组名 = new 类名称[长度];

定义并开辟数组

类名称 对象数组名[] = new 类名称[长度];

在声明对象数组后 ,必须对每个数组成员进行实例化话 才能直接使用,否则报空指针异常!

参考资料来源:

百度百科——对象数组

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-14
#include <iostream>
using namespace std;
class Student
{
      public:
             Student(int,int);
             int num;
             int grade; 
} ;
Student::Student(int n,int g)
{
        num=n;
        grade=g;
}
//找出成绩最高的学生的序号
int maxGradeIndex(Student* s)
{
    int maxGrade,index=0,i=0;
    maxGrade = s[0].grade;
    for(i=0;i<5;i++)
    {
        if(s[i].grade > maxGrade)
        {
              maxGrade = s[i].grade;
              index = i;
        }
    }
    return  index;
}
int main()
{
    Student a[5]={Student(1,50),Student(2,70),Student(3,88),Student(4,100),Student(5,47)};
    int maxGradeStNum = maxGradeIndex(a);
    cout<<"成绩最好的学生学号是:"<<a[maxGradeStNum].num<<endl;
    cout<<"成绩最好的学生成绩是:"<<a[maxGradeStNum].grade<<endl;
    getchar();
    return 0;
}

C++ Builder运行输出如下:

本回答被提问者采纳