C++中的对象数组使用方法
类是对象的抽象,我们可以使用一个类来定义很多的对象,然后每个对象都有自己的属性。
当我们使用类来定义很多相同结构的对象的时候,我们可以采取对象数组的方法。
在建立数组时,同样要调用构造函数。如果有50个元素,就需要调用50次构造函数。在需要的时候,可以在定义数组时提供实参以实现初始化。
如果构造函数只有一个参数可以这样初始化:
===================一个对象数组的例子=================
要求:建立一个对象数组,内放5个学生的数据(学号,成绩),设立一个函数max,在max函数中找出5个学生中成绩最高者,并出输出结果。

当我们使用类来定义很多相同结构的对象的时候,我们可以采取对象数组的方法。
例如,一个班有50个学生,我们定义了一个学生类,该类的学生具有相同的数据成员和成员函数,我们就可以定义一个这样的数组。
Student stdu[50];//假设已经声明了Student类,定义stud数组,有50个元素======================对象数组的初始化=========================
在建立数组时,同样要调用构造函数。如果有50个元素,就需要调用50次构造函数。在需要的时候,可以在定义数组时提供实参以实现初始化。
如果构造函数只有一个参数可以这样初始化:
Studet stud[3]={60,70,80};//三个实参分别传递给3个数组元素的构造函数如果构造函数有多个参数时,应该这样做:
Student stud[3]={//假设构造函数有3个参数 Student(10,20,30),//调用第一个元素的构造函数,提供3个实参 Student(40,50,60),//调用第二个元素的构造函数,提供3个实参 Student(70,80,90) //调用第三个元素的构造函数,提供3个实参 };在建立对象数组时,分别调用构造函数,对每个元素初始化。每一个元素的实参分别用括号括起来,对应构造函数的一组形参。
===================一个对象数组的例子=================
要求:建立一个对象数组,内放5个学生的数据(学号,成绩),设立一个函数max,在max函数中找出5个学生中成绩最高者,并出输出结果。
#include <iostream> using namespace std; class Student { public: Student() { number = 0; score = 0; } Student(unsigned int n, unsigned int s) { number = n; score = s; } unsigned int get_score() { return score; } void print() { cout << number << " " << score << endl; } private: unsigned int number; unsigned int score; }; Student max_score(Student stu[]) { int i = 0; Student maxScore = stu[0]; for(i=1; i<5; ++i) { if(maxScore.get_score() < stu[i].get_score()) { maxScore = stu[i]; } } return maxScore; } int main() { Student stu[5]= { Student(1, 65), Student(2, 45), Student(3, 95), Student(4, 85), Student(5, 75) }; int i = 0; for(i=0; i<5; ++i) { stu[i].print(); } Student p; p = max_score(stu); cout << "======max score======= "; p.print(); return 0; }
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了