最赞回答 / stars_wisper
系统可以释放对象,但不能释放对象引用的东西。作者强调过,用了new一定要用delete。视频末尾不是有一个示例吗。<...code...>
2018-11-23
已采纳回答 / 两极反转
#include "pch.h"#include <iostream>#include <string>#include<string>using namespace std;class Student {public: void setName(string _name) { m_strName=_name; } string getName() { return m_strName; } void setGender(string gender) { m_...
2018-11-09
最赞回答 / CassanBob
全局区里的变量在整个程序的执行期间都有效,不会被释放,即抹除;栈区里的生命周期与对应他前一个的花括号有关。当执行语句结束,栈区里的变量所占空间被释放,当整个程序运行结束,全局区里的变量所占空间被释放。显而易见,全局区的变量存活时间比栈区的长
2018-11-07
已采纳回答 / lzq_get
这里要提到数据结构中栈和堆的区别,栈是一种线性数据结构,管理比较简单,后入先出,而堆是一种树形结构,在处理优先级事件上具有较大优势;栈中创建对象是由编译器为对象在栈空间中分配内存,函数执行结束即自动销毁,无法进行有效管理;而使用堆建立类对象,会在栈中保留指向该对象的指针,堆中通常保存程序运行时动态创建的对象,C++堆中存放的对象需要由程序员分配释放,它存在程序运行的整个生命期,直到程序结束由OS释放。而java中对象的创建默认是存放在堆中,也不需要程序员主动释放内存,会有GC垃圾回收机制进行释放
2018-10-10