钱能第14章堆与拷贝构造函数课题.ppt

第14章 堆与拷贝构造函数 14.1 关于堆 14.2 需要new和delete的原因 14.3 分配堆对象 14.4 拷贝构造函数 14.5 默认拷贝构造函数 14.6 浅拷贝与深拷贝 14.7 临时对象 14.8 无名对象 14.9 构造函数用于类型转换 14.1 关于堆 C++程序的内存格局通常分为四个区: (1)全局数据区(data area): 全局变量、静态数据、常量存放在全局数据区。 (2)代码区(code area) : 所有类成员函数和非成员函数代码存放在代码区。 (3)栈区(stack area): 为运行函数而分配的局部变量、函数参数、返回数据、返回地址等存放在栈区。 (4)堆区(即自由存储区)(heap area): 其余的空间都是堆区。 14.2 需要new和delete的原因 分配内存空间、撤销内存空间 C的用法: #include malloc.h void* malloc(size_t); void free(void*); C++的用法: new delete 从C++的立场来看,不能用malloc()函数的一个原因是,它在分配空间的时候不能调用构造函数。类对象的建立是分配空间、构造结构以及初始化的三位一体,它们统一由构造函数来完成。

文档评论(0)

1亿VIP精品文档

相关文档