zoukankan      html  css  js  c++  java
  • C++中的对象数组

    类是对象的抽象,我们可以使用一个类来定义很多的对象,然后每个对象都有自己的属性。

    当我们使用类来定义很多相同结构的对象的时候,我们可以采取对象数组的方法。

    例如,一个班有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>
     #include<string>
     using namespace std;
     class Student
    {
     	public:
     		Student(string , int );//声明构造函数 
    		void Print();//声明信息输出函数 
    		string num;
    		int score; 
    };
     Student::Student(string n,int s)
    {
     	num=n;
     	score=s;
     }
     void Student::Print()
    {
     	cout<<num<<"	"<<score<<endl;
     }
     int main()
    {
     	Student stud[5]={
    	 	Student("001",90),
    	 	Student("002",94),
    	 	Student("003",70),
    	 	Student("004",100),
    	 	Student("005",60)	
    	 };
    	 int max,i=0,k=0;
    	 max=stud[0].score;
    	 for(i=0;i<5;i++)
    	 	{
    	 		cout<<stud[i].num<<"	"<<stud[i].score<<endl;
    	 		if(stud[i].score>max)
    	 		{
    		  		k=i;
    		  		max=stud[i].score;
    	 		}
    	 	}
     	cout<<"=============MAX:==========="<<endl;
    	stud[k].Print();
    	cout<<endl; 
     }
     




  • 相关阅读:
    软件测试工具
    Linux笔记
    Google Test
    字典dict()
    元组tuple 可迭代对象
    列表list
    一些总结
    format()
    列表list
    format() expandtabs() 输入表格数据
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3303872.html
Copyright © 2011-2022 走看看