课程
/后端开发
/C++
/C++远征之封装篇(上)
既然栈区的内存是自动管理的,那什么情况下需要使用堆区呢,都使用堆区不好吗
2018-10-10
源自:C++远征之封装篇(上) 6-1
正在回答
这里要提到数据结构中栈和堆的区别,栈是一种线性数据结构,管理比较简单,后入先出,而堆是一种树形结构,在处理优先级事件上具有较大优势;栈中创建对象是由编译器为对象在栈空间中分配内存,函数执行结束即自动销毁,无法进行有效管理;而使用堆建立类对象,会在栈中保留指向该对象的指针,堆中通常保存程序运行时动态创建的对象,C++堆中存放的对象需要由程序员分配释放,它存在程序运行的整个生命期,直到程序结束由OS释放。而java中对象的创建默认是存放在堆中,也不需要程序员主动释放内存,会有GC垃圾回收机制进行释放
举报
封装--面向对象的基石,本教程力求帮助小伙伴们即学即会