面向对象程序设计—第四章解读.ppt

  1. 1、本文档共101页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * 函数返回可以是对象、对象引用或对象指针 * * * * 分析:分析有几个什么类,定义类 * * 动态的含义 * * * strcpy连同结束标志‘\0’一起复制,加1是必要的 * * * * 有分配空间和对矩阵赋值的功能。 * * * 为了是的函数mul能访问两个矩阵的二级指针,完成乘法 * * 这样写对不对?C对数组的访问 * 此段程序不够完善 * * * 为什么矩阵Mc的结果不对?应该怎么做?返回对象(不是引用)行吗? * * * * * * * * * * * * * * 注意:一个对象的拷贝构造函数中可以访问另一个对象的私有成员 * * S作为参数传递给拷贝构造函数 * * * 去掉所有的构造函数,因为name是野指针 * * * * * Student s;如果没有不带参数的构造函数则出错 * 应该去掉括号 * * * * * * * 综合训练3 #include iostream.h class mStack{ float *pStack; //指向堆栈的指针 int nMax; //堆栈的大小 int point; //栈顶指针 public: void Init(int n=100) //初始化函数,可以写成构造函数 { pStack=new float[n]; nMax=n; point=0; } float Push(float); //入栈 float Pop(void); //出栈 void CopyStack(mStack ); //拷贝堆栈 void Print(void); //打印堆栈数据 void FreeSpace(void); //释放堆栈存储空间 }; 综合训练3 void mStack ::Print(void) { cout堆栈中数据个数为:point; cout数据(从栈顶开始):; for (int i=point-1;i=0;i--) coutpStack[i]\t; cout\n; } void mStack :: FreeSpace(void) { if (nMax) delete [] pStack; } if (pStack) delete [] pStack; 综合训练3 float mStack ::Push(float x) { if (pointnMax) pStack[point++]=x; else { float *temp; temp= new float[nMax+10]; for (int i=0;ipoint;i++) temp[i]=pStack[i]; delete [] pStack; pStack=temp; nMax+=10; pStack[point++]=x; } return x; } 综合训练3 float mStack ::Pop(void) { if (point0) return pStack[--point]; else return -1; } void mStack ::CopyStack(mStack a) { if (a !=this) { if (nMax) delete [] pStack; pStack= new float[a.nMax]; nMax=a.nMax; point=a.point; for (int i=0;ia.point;i++) pStack[i]=a.pStack[i]; } } 是什么? 综合训练3 void main(void) // 主函数 { mStack s1,s2; s1.Init(); s2.Init(25); for (int i=100;i=105;i++) s1.Push(i*25.5); for (i=200;i=205;i++) s2.Push(i+50.5); s1.Print(); s2.Print(); s2.Push(560.5); s2.Print(); s1.CopyStack(s2); s1.Print(); s2.Print(); s1.FreeSpace(); s2.FreeSpace(); } 作业题 22(写在书上)、23、29为实验题目 * * * * * * * * * * * * * * 这种做法其实不行,一般不能用类的前向声明,详见网上一些帖子 * * * * * * * * * * * 4.3、对象数组和对象指针 #include iostream.h class exe{ int x; publi

文档评论(0)

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

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

1亿VIP精品文档

相关文档