打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C 对象数组的实例学习

C 作为一种面向对象的语言,其面向对象的思维,我觉得非常重要,一直都在研究汇编和C语言,没有对象的观念,但是C 里面,对象思维,抽象思维其实是很有意思的,而且很有意义。

今天,我们来分析学习对象数组,对象数组从名字上分析,就是存放对象的数组,可能对于初学者来说,这是一个新词,但是对象数组很有用。

我们假设,学生是对象,对象的属性有ID和Score,那么如果班级里面有100个学生,那么每个对象都要用类进行实例化的话,那真是太恐怖了,此时,C 的对象数组就该上场了,一个数组直接搞定是不是很方便呢?

唯一要注意的事情是:

要创建对象数组,必须要有默认构造函数,但是如果我们声明了一个构造函数,默认构造函数系统不会给,所以,我们得显式给出默认构造函数!!

--------------------我是分割线,下面用代码说明-----------------

  1. include <iostream>
  2. include <string>
  3. using namespace std;
  4. const int Objarr_Number = 5;
  5. class Student
  6. {
  7. public:
  8. Student(stringint);//构造函数
  9. Student();           //默认构造函数一定要有  
  10. void Print();        //声明输出函数
  11. string ID;
  12. int score;
  13. };
  14. Student::Student(string s, int n)
  15. {
  16. ID = s;
  17. score = n;
  18. }
  19. void Student::Print()
  20. {
  21. cout << 'ID :  '<< ID  << '  ' << 'Score: '<< score << endl;
  22. }
  23. int main(void)
  24. {
  25. Student stud[Objarr_Number] = {
  26. Student('001'90),
  27. Student('002'94),
  28. Student('003'70),
  29. Student('004'100),
  30. Student('005'60),
  31. };
  32. int max = stud[0].score;
  33. int i = 0;
  34. int k = 0;
  35. cout << 'ID ' << '\t' << 'Score   '<< endl;
  36. for(i = 0; i< Objarr_Number; i )
  37. {
  38. //输出对象数组的值
  39. cout << stud[i].ID <<'\t' << stud[i].score << endl;
  40. //以成绩来进行比较
  41. if(stud[i].score > max)
  42. {
  43. k = i;
  44. max = stud[i].score;
  45. }
  46. }
  47. cout <<'-----------------------------'<<endl;
  48. cout << 'The Max Score is  ' ;
  49. //输出最大的学生的成绩
  50. stud[k].Print();
  51. cout << endl;
  52. return 0;
  53. }

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

效果图:

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

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

加油!!

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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【C++学习笔记】C++ 使用new与delete时,你注意到这3个地方了吗?
C++语言的编程技巧
C++中virtual
20、继承和派生(一)
C 面试题之浅拷贝和深拷贝的区别
指针数组,数组指针,以及函数指针,以及堆中的分配规则
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服