回复人: cathy97(肉沫茄子)
能不能不把我的名字打错?
new/new[]其实还是调用了函数,Inside the C++ Object Model里面说的是__new(),不过我估计还是调用了malloc()的,难道编译期就能调用函数,C/C++里面都没这个特性。而且作为由程序员控制生命周期的东西,你能要求编译器负责清除它吗?而清栈的过程是由编译器负责的,不用程序员负责,只要到了一个块结束的时候就调用destructor,到了函数结束的时候就弹出栈。而new产生的东西,编译器不知道它什么时候被摧毁,所以要在运行期分配。