C++编程练习1动态数组(DynamicArray)类的封装练习.doc

C++编程练习1动态数组(DynamicArray)类的封装练习.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++编程练习1动态数组(DynamicArray)类的封装练习.doc

C++编程练习1:动态数组(Dynamic Array)类的封装练习 程序环境 学习使用Visual C++ 6.0环境开始编程:学习最简单的使用Win32 Console Project (类似于Turbo C中的环境),使用说明可见: /ligangliu/Courses/DataStructure_2005-2006/SourceCodes/C2C++/NewConsole.htm 编程规范 编写程序一定要养成良好的代码习惯。“程序不是写给自己看的,是写给别人看的”。 学习规范化编程,养成良好的习惯。可参考编程规范及技巧的文档: /ligangliu/ForStudents/C++/CodingSkills.rar /ligangliu/_download/Training/Documents/Talks/Coding/CodingBasicSkills.rar 注意:不同的团体、公司都有各自的编程规范,没有统一的编程规范。在编程训练的初期,只要选择自己喜欢的一套比较统一的编程规范来写即可,不必追求与上述文档完全一致的编程规范。以后随着编程水平的提高以及查看其他规范的代码后,可根据自己的喜好和合作团队的要求来不断调整自己的编程规范。 动态数组类的演示过程 使用固定大小的数组,如 double a[100]; 有使用不方便的地方:数组大小固定,不灵活;如果程序使用的情况数组元素的个数多于100,则要改数组大小,然后重新编译程序;如果程序使用的情况数组元素的个数很少,则有大量的空间被浪费。 为了解决这个矛盾,可以使用动态分配内存空间的方法(需要对内存的动态分配的机制和原理了解和熟悉),即, 采用一个指针p记录数组的头地址;采用一个整数n记录数据元素的个数 程序运行时,用多少个元素n,就从内存中申请多少空间来存储数组p;p所指向的内存空间的数组元素总是n。n一旦变化,p即申请新的空间用来存储数组(当然需释放掉以前的内存空间,以免造成内存泄漏)。这样,对数组的操作是通过一些函数来操作:这些函数就是对操作这个数组的“接口”。 上述的程序大概形式可见: /ligangliu/Courses/DataStructure_2005-2006/SourceCodes/C2C++/Array0.rar 由于p 和 n之间有强烈的逻辑关系,自然可以用struct将它们“包”在一起处理,见: /ligangliu/Courses/DataStructure_2005-2006/SourceCodes/C2C++/Array1.0.rar /ligangliu/Courses/DataStructure_2005-2006/SourceCodes/C2C++/Array1.1.rar 这时发现那些操作数组的接口函数,都是操作struct的数据,自然可以想到将这些函数“放”到struct里面。在struct中放函数在C中是不行的,但是在C++中是可以的。这样大概如下形式: /ligangliu/Courses/DataStructure_2005-2006/SourceCodes/C2C++/Array2.rar 此时发现,数据p,n及处理它们的函数都“包”在一起,放在一个struct中,这就是对它们的一种封装。用户只要操作这个struct的函数,就可以操作一个“数组”。 我们将关键词struct改为class,然后将函数的类型改为public,其他不变,这个程序就可以编译运行。这事实上就是一个简单的C++的程序,并且大致完成了一个class!见: /ligangliu/Courses/DataStructure_2005-2006/SourceCodes/C2C++/Array3.rar 在写C++程序时,一般一个类需要2个文件,一个头文件*.h(定义了这个类的接口),一个实现文件*.cpp(具体这个类的实现),见: /ligangliu/Courses/DataStructure_2005-2006/SourceCodes/C2C++/Array4.rar 希望上述过程好好体会一下。注意:上述的代码都不太符合编程规范,只是演示了大致的一个过程。你需按照严格的编程规范来完成该练习。 作业及要求 现在要求动态数组的类的接口如下: class DArray { private: double *m_pData; // 存放数组的动态内存指针 int m_nSize; // 数组的元素个数 private: void Init(); // 初始化 void Free(); // 释放动态内存 inline int InvalidateIndex(int nIndex); //

文档评论(0)

magui + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档