读书人

除开动态申请的变量类中直接定义的非

发布时间: 2013-08-01 15:23:18 作者: rapoo

除了动态申请的变量,类中直接定义的非静态变量在析构的时候都会自动释放吧?
我知道这个问题很傻逼,我只是想确认一下。
[解决办法]
如果你的类里面只用到的基本类型,如int char double等,系统的默认析构函数其实什么都没有做。但如果你使用了其他的类如vector,string等,系统的默认析构函数就会调用这些类对象的析构函数。析构函数主要作用就是释放资源,避免内存泄漏

[解决办法]
是的。。。。。
[解决办法]
函数的参数值,局部变量的值等存放在栈区由编译器自动分配释放
[解决办法]

类的非静态成员变量,如果没有申请内存(不包含指针),不需要额外释放内存,申请内存的,析构时,会自动析构,该成员变量的析构函数,必须适当的释放内存。

自动变量,包括函数参数,占用的内存,是函数调用时,自动分配和释放的。

如果该自动变量是,类类型,会自动调用构造,析构函数的。

如果 用类定义了局部变量,除了执行析构函数外,其他和普通局部变量一样处理。
全局变量,生存期超过了,main函数,会在main函数执行完毕后,时析构。

全局变量析构时,只有内部含有指针的对象,在构造或者,变动时,申请了内存的,才需要额外释放内存。
全局变量本身,占用的内存的释放,是程序结束运行后,自动解决的。

不用写任何代码,就会释放全局变量,和程序代码,占用的内存。

只要不包含指针的使用,一般不需要释放内存。

只有用了指针,并分配内存给指针赋值,才需要自己写代码,释放内存。

读书人网 >C++

热点推荐