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;
}

--------------------我是分割线-------------------------------------------

效果图:

----------------------------------------------------------------------------------------------

手工敲一遍,理解更深刻!!!

加油!!

----------------------------------------------------------------------------------------------

C++对象数组的实例学习相关推荐

  1. 【最精简写法】获取一维数组和对象数组最值:最大值、最小值,返回对象

    Math.max(...arr);//返回数组最大值 Math.min(...arr);//返回数组最小值Math.max(...objArr.map(o => o.最值字段名));//返回对象 ...

  2. json数组 js html标签,js定义json对象数组 json 数组也是数组 //

    var jsonstr="[{'name':'a','value':1},{'name':'b','value':2}]"; var jsonarray = eval('('+js ...

  3. PHP中foreach详细分析—一般数组与对象数组

    PHP中的foreach作为经常用到的函数,常常用来遍历数组,对于数组中的元素是值的情形(如一般常见型的数组),foreach只是将数组中的每份元素的值拷贝到each后面的变量, 也就是对值本身的拷贝 ...

  4. php对象和数组的效率,PHP对象数组和一般数组区别

    PHP中的foreach作为经常用到的函数,常常用来遍历数组,对于数组中的元素是值的情形(如一般常见型的数组),foreach只是将数组中的每份元素的值拷贝到each后面的变量,也就是对值本身的拷贝, ...

  5. 通过属性值从对象数组中获取JavaScript对象[重复]

    本文翻译自:Get JavaScript object from array of objects by value of property [duplicate] This question alr ...

  6. 通过ID在JavaScript对象数组中查找对象

    本文翻译自:Find object by id in an array of JavaScript objects I've got an array: 我有一个数组: myArray = [{'id ...

  7. 按属性值对对象数组进行排序

    我使用AJAX获得了以下对象并将它们存储在数组中: var homes = [{"h_id": "3","city": "Dall ...

  8. js 矩阵转置_js对象数组矩阵转置(行转列)的实践

    最近项目中有个需求需要将一个类似二维数组的数据矩阵转置(行转列)我通过查资料发现这是很简单的.只需要经过下面的处理就没问题了.但... var newArray = tansDatas[0].map( ...

  9. array,vector对象 数组越界检测

    array,vector对象 数组越界检测 posted on 2017-11-15 16:20 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnbl ...

  10. java字符串数组拷贝函数_java 数组的拷贝 对象数组的拷贝 System.arraycopy函数

    /* java 数组的操作   System类的arraycopy静态函数用于数组拷贝   数组是不能越界的 对象数组的复制实际上是复制的引用的拷贝  也就是对象的地址 */ class Point ...

最新文章

  1. 爱立信华为MWC展前叫阵:5G成重头戏
  2. 高校老师暑假狂补AI课背后:AI人才培养竞赛开跑
  3. 手机蓝牙如何减少延时_如何使用车载蓝牙播放手机音乐的方法
  4. ROS自定义地图(CAD、手绘等)
  5. 剑指offer 替换空格
  6. python series用法_如何使用Python中的Series字典创建数据框?
  7. bind_param 类怎么写_情感类自媒体怎么写?你不知道的情感类文章4大禁忌!
  8. HDU-2067-小兔的棋盘
  9. 编程初学者必须知道的十件事
  10. 史上最全的数据链路层基础知识详解
  11. 测度论与概率论基础学习笔记1——1.1 集合及其运算
  12. 光伏并网逆变器意大利CEI 0-21标准
  13. Spring入门之bean的配置
  14. coffeescript java 执行_新的coffeescript,运行cakefile时产生ENOENT错误
  15. 《我的野蛮女友》主题,乔治·温斯顿《卡农变奏曲》,帕卡贝尔的《D大调卡农》...
  16. java中的方法基础
  17. H5移动端出生日期插件
  18. php+js扫码枪实现签到的功能
  19. 各大高权重搜索引擎博客矩阵链轮?
  20. Python-练习 43. 面向对象的分析和设计基础

热门文章

  1. java中mysql.ini_为什么找不到mysql.ini文件,我是放在scr目录下的
  2. python找不到sys模块_在本地目录中找不到模块,存在于sys.path中
  3. 启明星系统使用在线视频教程
  4. 201111-W-网络技术-基础理论与应用说明
  5. ASA站点×××,远程站点通过主站上网之配置
  6. [转] 在ASP.NET MVC3中使用EFCodeFirst 1.0
  7. 【JavaEE】第零章(2020.03.06)模式 表 索引
  8. kafka-client 版本兼容问题
  9. 软考中级软件设计师笔记第一章计算机组成与体系结构
  10. php订单号生成规则,项目笔记之订单号生成规则以及方法,第一篇!