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;
}
- 对象数组【c++】
- 3.5对象数组【C++】
- Objective-C之数组对象
- C++-类对象成员&&对象数组
- C++---对象数组和对象指针
- Objective-c 数组对象 (NSArray 和 NSMutableArray)
- Objective-C 数组对象(七)
- Objective-C---4---数组和值对象
- Objective-C研究院之数组对象
- C++:对象数组与this指针
- [C] 在 C 语言编程中实现动态数组对象
- 转:(C++)对象成员数组初始化/赋值讨论
- Objective-C语法之数组对象的那些事儿
- Objective-C研究院之数组对象(七)
- Objective-C研究院之数组对象(七)
- 解析Objective-c 数组对象 (NSArray 和 NSMutableArray)
- objective-c中数组输出对象怎么为地址
- 【C++】学习笔记四十九——对象数组
- C++中运算符 &和&&、|和|| 的区别
- MATLAB中conv2函数的用法及说明
- 归并排序
- 关于TCP单边加速的困境
- for()循环和while()循环
- C++ 对象数组
- poj3345 Bribing FIPA
- error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”
- 有关shell(2)
- Android API 23分享
- 一文弄懂神经网络中的反向传播法——BackPropagation
- RecycleView 滑动超过半屛滑入下一个item
- POJ 173 Musical Theme 后缀数组 + 最长不重叠重复子串
- stm32 移植cJson 注意free释放内存!!