类与对象之堆栈与拷贝构造函数

上传人:ji****72 文档编号:50239090 上传时间:2018-08-07 格式:PPT 页数:20 大小:131.50KB
返回 下载 相关 举报
类与对象之堆栈与拷贝构造函数_第1页
第1页 / 共20页
类与对象之堆栈与拷贝构造函数_第2页
第2页 / 共20页
类与对象之堆栈与拷贝构造函数_第3页
第3页 / 共20页
类与对象之堆栈与拷贝构造函数_第4页
第4页 / 共20页
类与对象之堆栈与拷贝构造函数_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《类与对象之堆栈与拷贝构造函数》由会员分享,可在线阅读,更多相关《类与对象之堆栈与拷贝构造函数(20页珍藏版)》请在金锄头文库上搜索。

1、第七讲 堆内存与拷贝构造函数学 习 要 求 掌握new和delete操作符的使用(从堆区分配 内存) 理解拷贝函数的实质,区别深拷贝和浅拷贝 ,适当的运用拷贝构造函数7 . 1 存储空间C+的内存格局通常分为四个区:例题: memorytypes(1)全局数据区( data area);(2)代码区(code area);(3)栈区(stack area);(4)堆区(自由存储区 heap area);全局变量、静态数据、常量 存放在全局数据区所有类成员函数和 非成员函数代码的 存放区为运行函数而分配的局 部变量、函数参数、返 回数据、返回地址等, 函数返回后自动释放余下的内存空间 在栈区分配

2、的内存系统自动回收,如函数内 部的局部变量。int f1( int val) int a;a = val; return a; main() int b, c = 10;b = f1(c); 如果a是一个对象会有什 么问题?深复制与浅复制C+提供默认的复制机制,用于赋值运算和临时对象的创建,默认的 复制机制是简单的按位复制例题:deepcopy例【11-2】class studentpublic:/student(int, char*);private:int age;char *name;Main()student stu1(20,”Zhang”), stu2(21, “Li”);stu2

3、= stu1;Zhang0stu1 age = 20 name*Li0stu2 age = 21 name*Li0stu2 age = 20 name*深复制与浅复制运算符的重载例【11-2】class studentpublic:/student(int, char*);studentprivate:int age;char *name;Main()student stu1(20,”Zhang”), stu2(21, “Li”);stu2 = stu1;student class A public: A(int a=0) cout“调用构造函数“endl; x=a; A(const A x=

4、a.x; A( ) void outputx( ) cout“x=“xendl; private: int x; ;int main( ) A a1(2); /以值为实参声明对象,将调用构造函数a1.outputx( ); A a2(a1); /以同类的对象为实象声明对象/将调用拷贝构造函数/ A a2 = a1;a2.outputx( );return 0; 默认拷贝构造函数 上面的程序, 用户在类中定义了拷贝构造函数 ,如果未定义拷贝构造函数,则C+ 编译系统 自动提供了一个默认拷贝构造函数,其作用 只是简单地复制类中的每个数据成员 . 注 意:用一个已有的对象定义新对象,就像是对已有对象

5、的 复制 (copy) .7 . 3 临时对象 当函数返回一个对象时,要创建一个临时对 象以存放返回的对象 .Student fn( ) /Student ms (“Randy”); return ms; void main ( ) Student s ; s = fn ( );/ms s函数fn栈区主函数 栈区临时对象Student fn( ) /Student ms (“Randy”); return ms; void main ( ) Student s ; s = fn ( );/ 规定,创建的临时对象,在整个创建它们的 外部表达式范围内有效,否则无效 .时间: 18周周六9-10节,19点钟准时开始 地点: 上课机房 形式: 程序(第1节课) + 笔试(第2节课) 19:00 前将个人 资料拷贝到个人使用的计算机上, 考试过程中禁止使用移动存储设备。 程序: WIN32程序1个(20分),C+程序1个(20分),要求 分别建立工程,工程名以个人姓名的首字母+学号后3位 +“win32”与“CPP”为工程名,可以参考电子资料,具体内容 考试时给出。完成程序后将2个工程打包成rar文件,文件以 个人学号命名,压缩包的有效时间为11:00以前。笔试:简答题(60分)。开卷,可以携带纸质、电子资料, 禁止上网,禁止相互抄袭、讨论。关于考试

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号