第5章-堆与拷贝构造函数.pptVIP

  • 4
  • 0
  • 约2.99千字
  • 约 13页
  • 2018-09-19 发布于四川
  • 举报
第五章 堆与拷贝构造函数 5.1 关于堆 C++的内存格局通常分为四个区:代码区、全局数据、栈区、堆区。 全局变量、静态数据、常量存放在全局数据区,所有类成员函数和非成员函数代码存放在代码区,为运行函数而分配的局部变量、函数参数、返回地址等存放在栈区,余下的空间都被作为堆区。 第五章 堆与拷贝构造函数 5.2 需要new和delete的原因 使用new和delete比malloc()和free()简单,不用头文件声明。 从程序设计的需要来看,在分配内存申请的时候,总是知道分配的空间派什么用,而且分配空间大小总是某个数据类型(包括类类型)的整数倍。 类对象的建立是分配空间、构造结构以及初始化的三位一体,它们统一由构造函数来完成。malloc()函数在分配空间的时候不能调用构造函数。 第五章 堆与拷贝构造函数 5.3 分配堆对象 如果是分配局部对象,则在该局部对象退出作用域时自动调用析构函数。但是堆对象的生命期是整个程序生命期,所以除非程序运行完毕,否则堆对象生命不会到期。堆对象析构是在释放堆对象语句delete之时。 构造函数可以有参数,所以跟在new的类型后也可以有参数。 从堆上分配对象数组,只能调用默认的构造函数,不能调用其它任何构造函数。 第五章 堆与拷贝构造函数 5.4 拷贝构造函数 需要性 对象初始化 ?? Tdate d1(1999

文档评论(0)

1亿VIP精品文档

相关文档