为什么在C++中需要析构函数?

Fut*_*Sci -3 c++ memory memory-management raii

为什么我们必须使用析构函数在c ++中取消分配内存,

我们可以使用

delete or delete[]   
Run Code Online (Sandbox Code Playgroud)

程序终止时释放程序使用的所有内存是不正确的.

das*_*ght 5

通常,只有在程序终止后才能恢复内存.大多数为连续运行而设计的程序需要分配可变大小的临时内存,而不需要为该内存的生命周期特定的名声.很明显,如果您请求内存并且在相当长的时间内没有返回内存,程序将耗尽内存,并在请求额外内存时终止.

有了这个说法,你可以通过分配你可以在自动区域中分配的所有内容,而不必在C++中使用析构函数.您真正需要使用动态内存的唯一时间是对象的生命周期必须超出其分配范围,但即使这样,C++容器也会为您处理大多数分配(当然,标准容器的实现很大程度上依赖于C++语言的构造函数/析构函数基础结构).