C++对象数组的实例学习

发表于:2014-6-05 10:23

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:liam2199    来源:51Testing软件测试网采编

  C++作为一种面向对象的语言,其面向对象的思维,我觉得非常重要,一直都在研究汇编和C语言,没有对象的观念,但是C++里面,对象思维,抽象思维其实是很有意思的,而且很有意义。
  今天,我们来分析学习对象数组,对象数组从名字上分析,就是存放对象的数组,可能对于初学者来说,这是一个新词,但是对象数组很有用。
  我们假设,学生是对象,对象的属性有ID和Score,那么如果班级里面有100个学生,那么每个对象都要用类进行实例化的话,那真是太恐怖了,此时,C++的对象数组就该上场了,一个数组直接搞定是不是很方便呢?
  唯一要注意的事情是:
  要创建对象数组,必须要有默认构造函数,但是如果我们声明了一个构造函数,默认构造函数系统不会给,所以,我们得显式给出默认构造函数!!
  --------------------我是分割线,下面用代码说明-----------------
# include <iostream>
# include <string>
using namespace std;
const int Objarr_Number = 5;
class Student
{
public:
Student(string, int);//构造函数
Student();           //默认构造函数一定要有
void Print();        //声明输出函数
string ID;
int score;
};
Student::Student(string s, int n)
{
ID = s;
score = n;
}
void Student::Print()
{
cout << "ID :  "<< ID  << "  " << "Score: "<< score << endl;
}
int main(void)
{
Student stud[Objarr_Number] = {
Student("001", 90),
Student("002", 94),
Student("003", 70),
Student("004", 100),
Student("005", 60),
};
int max = stud[0].score;
int i = 0;
int k = 0;
cout << "ID " << "\t" << "Score   "<< endl;
for(i = 0; i< Objarr_Number; i++)
{
//输出对象数组的值
cout << stud[i].ID <<"\t" << stud[i].score << endl;
//以成绩来进行比较
if(stud[i].score > max)
{
k = i;
max = stud[i].score;
}
}
cout <<"-----------------------------"<<endl;
cout << "The Max Score is  " ;
//输出最大的学生的成绩
stud[k].Print();
cout << endl;
return 0;
}
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号