C++分析New和Delete----C语言Malloc和Free


C++中为什么不用Malloc和Free,而用New和Delete?

  

   <1> 如图: 类的对象在堆上分配的时候用malloc和free:

我们观察发现虽然在堆上申请空间了,但并没有调用构造函数和析构函数。
    C++分析New和Delete----C语言Malloc和Free
发现并没有调用我们自己写的构造和析构函数:

    C++分析New和Delete----C语言Malloc和Free


<2>    用New和Delete观察

           我们会发现构造函数和析构函数都调用了:
    C++分析New和Delete----C语言Malloc和Free       
            观察看到也申请了空间:       C++分析New和Delete----C语言Malloc和Free

           释放空间:

C++分析New和Delete----C语言Malloc和Free


由此可以总结:

new:
    语法:类型名 *p = new 类型名
可以跟malloc一样分配对象内存。
new还可以调用析构函数。

Delete:
可以和free一样释放空间。
     
还可以调用析构函数。



有什么问题欢迎留言!~~~~