C面向对象程序设计.ppt_第1页
C面向对象程序设计.ppt_第2页
C面向对象程序设计.ppt_第3页
C面向对象程序设计.ppt_第4页
C面向对象程序设计.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.3 构造函数和析构函数的执行顺序 先构造的后析构,后构造的先析构。 class A int a; public: A(int Aa) a=Aa; coutPrint(); pa2-Print(); delete pa1; /用delete释放空间 delete pa2; /用delete释放空间 3 5 0 0 在程序的执行过程中,对象如果用 new运算符开辟了空间,则在类中应该定义 一个析构函数,并在析构函数中使用delete 删除由new分配的内存空间。因为在撤消对 象时,系统自动收回为对象所分配的存储空 间,而不能自动收回由new分配的动态存储 空间。 class Str char *Sp; int Length; public: Str(char *string) if(string)Length=strlen(string); Sp=new charLength+1; strcpy(Sp,string); else Sp=0; void Show(void) coutPrint(); delete pa1; /调用析构函数 coutPrint(); cout. 其中,指出该数组元素是属于该类的对象,方 括号内的给出某一维的元素个数。一维对象数组只 有一个方括号,二维对象数组要有两个方括号,等等,例 如: DATE dates7; 2. 对象数组的赋值 对象数组可以被赋初值,也可以被赋值。例如: class DATE public: DATE(int m, int d, int y); void printf(); private: int month, day, year; ; 下面是定义对象数组并赋初值和赋值: DATE dates4= DATE(7, 7, 2001), DATE(7, 8, 2001), DATE(7, 9, 2001), DATE(7, 10, 2001) 动态构造及析构对象数组 用new运算符来动态生成对象数组时,自动调用构 造函数,而用delete运算符来释放p1所指向的对象 数组占用的存储空间时,在指针变量的前面必须加 上 , 才能将数组元素所占用的空间全部释放。 否则,只释放第0个元素所占用的空间。 pa1=new A3; . delete pa1; class A float x,y; public: A(float a=0, float b=0)x=a; y=b;cout“调用了构造函数n“; void Print(void) coutxtyendl; A() cout“调用了析构函数n“; ; void main(void) cout“进入main()函数n“; A *pa1; pa1=new A3;/开辟数组空间 cout“n完成开辟数组空间nn“; delete pa1; /必须用删除开辟的空间 cout“退出main()函数n“; 进入main()函数 调用了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论