C++ 对象数组

来源:互联网 发布:数控编程软件 安卓 编辑:程序博客网 时间:2024/06/03 13:02

类是对象的抽象,我们可以使用一个类来定义很多的对象,然后每个对象都有自己的属性。
当我们使用类来定义很多相同结构的对象的时候,我们可以采取对象数组的方法。

例如,一个班有50个学生,我们定义了一个学生类,该类的学生具有相同的数据成员和成员函数,我们就可以定义一个这样的数组。

Student stdu[50];//假设已经声明了Student类,定义stud数组,有50个元素 

 

1.   对象数组的初始化

在建立数组时,同样要调用构造函数。如果有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个实参

};

 

在建立对象数组时,分别调用构造函数,对每个元素初始化。每一个元素的实参分别用括号括起来,对应构造函数的一组形参。

 

2.   一个对象数组的例子

要求:建立一个对象数组,内放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 << "\t" << 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=======\n"; 

   p.print(); 

 

   return 0; 

}  



0 0
原创粉丝点击