内存释放

来源:百度知道 编辑:UC知道 时间:2024/09/19 19:07:15
我想问一下 写的一段程序里面 如果new了一些空间 在这段程序运行结束的时候会不会把所有的这个程序占用的空间都自动释放掉?
如果new 了一个对象
然后delete这个对象的话
然而这个对象的类的析构函数没有写
这样能起到释放内存的效果吗?
说类有默认的析构函数 这个析构函数听说是空的 是这样子的吗?

构造函数与析构函数是空的,但它也能管理内存.我是这么理解的,构造与析构函数的功能就是为变量对象等分配内存.当你用int i;时,规定了i的内存按int型分配.但这只是规定,还没有分配.程序只有当运行到它的构造函数时,才真正的将内存分配给它.而这需要一个标志信号,也就是构造函数.析构函数常常是空的,但它必需有,不能删除掉.因为程序有其严紧性,定下规定就必须执行.就象.int与char的内存大小一样,完全能通用的,但为了要骗过VC编译程序.才需要强制类型转换符这个补充的语句
-----------------
被new分配内存的变量的生命周期与你的应用程序是一样的.只有整个程序关闭了,它才释放.

系统会自动回收

但是,为了养成良好习惯,为了程序的稳定最好自己释放~

也就是一个new对应一个delete
-------------------------------
一个类的构造函数和析构函数默认是空的

你所说的这样的可以起到释放内存的效果

不会.
malloc与free,new与delete的使用最好全部配对.