720150428面向对象程序设计-第7章(7).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7.11 对象和数组 对象数组是指数组元素为对象的数组。该数组中若干个元素必须属于同一个类。对象数组的定义、赋值和引用与普通数组一样,只是数组的元素与普通数组不同,它是同类的若干个对象。 对象数组定义格式如下: ??? 类名数组名[大小]... 类名指出该数组元素是属于该类的对象、 大小给出某一维的元素个数。 例如:DATE dates[7]; 表明dates是一维对象数组名,该数组有7个元素,每个元素都是类DATE的对象。 对象数组的赋值 对象数组在定义时可以初始化,也可定义后赋值。 例如: class DATE { public: ??? DATE(int m, int d, int y); ??? void printf(); private: ??? int month, day, year; }; DATE dates[4]={ DATE(7, 7, 2001), DATE(7, 8, 2001), DATE(7, 9, 2001), DATE(7, 10, 2001) } 或者 dates[0] = DATE(7, 7, 2001); dates[1] = DATE(7, 8, 2001); dates[2] = DATE(7, 9, 2001); dates[3] = DATE(7, 10, 2001); 如果构造函数有多个参数,则不能在定义数组时直接提供所有实参,这样会出现歧义: Student::Student(int=1000, int=18, int=60) 如果定义对象数组时的语句为 Student std[3] = {1005, 60, 70}; 这三个实参与形参对应关系应该是怎样? 是为每个对象个提供第一个实参? 是全部作为第一个对象的实参? 在定义数组时提供的实参个数不要超过数组的个数。 7.11.2 指向数组的指针 指向一般数组的指针定义格式如下: ??? 类型说明符(*指针名)[大小]... 指向对象数组的指针格式如下: 类名(*指针名)[大小]... 其中,用来说明指针的 * 要与指针名括在一起。后面用一个方括号表示该指针指向一维数组,后面用二个方括号表示该指针指向二维数组。类型说明符用来说明指针所指向的数组的元素的类型。例如: int (*P)[3]; ? ??? 指针数组指的是数组元素为指针的那类数组。一个数组的元素可以是指向同一类型的一般指针,也可以是指向同一类类型的对象。 一般指针数组的定义格式如下: ??? 类型名*数组名[大小]... ??? 其中,*加在数组名前面表示该数组为指针数组。[大小]表示某一维的大小,即该维的元素个数,…表示可以是多维指针数组,每一个[大小]表示一维。例如: int * pa[3];//每个元素是一个整型指针 char * pc[2][5];//每个元素是一个字符型指针 7.11.2 指针数组 #include iostream.h Class A { public: A(int i=0; int j=0) {a=i; b=j;} void print(); private: int a,b; }; void A::print() { couta“,”bendl; } Void main() { A a1(7,8), as, a3(5,7); A *b[3] = {a3, a2, a1}; for(int i=0; i3; i++) b[i]-print(); } 7.11.3带参数的main()函数 在实际编程中,有时需要main()带参数。通过main()函数的参数给程序增加一些处理信息。一般地说,当使用C++编写的源程序经过编译连接生成的可执行文件在执行时,需要带命令行参数,则该源程序的主函数main()就需要带参数。使用所带有的参数来存放命令行中的参数,以便在程序中对命令行参数进行处理。 带有参数的main()函数头格式如下: ??? void main(int argc, char * argv[]) ??? 其中,第一个参数argc是int型的,它用来存放命令行参数的个数,实际上argc所存放的数值比命令行参数的个数多1,即将命令字(可执行文件名)也计算在内。第二个参数argv是一个一维的一级指针数组,它是用来存放命令行中各个参数和命令字的字符串的,并且规定: argv[0]存放命令字 argv[1]存放命令行中第一个参数 argv[2]存放命令行中第二个参数 这里,argc的值和argv[]各元素的值都是系统自动组赋值的。 #include iostream.h void main(int argc, char*

文档评论(0)

55863368 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档