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


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

  

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

我们观察发现虽然在堆上申请空间了,但并没有调用构造函数和析构函数。
    
发现并没有调用我们自己写的构造和析构函数:

    


<2>    用New和Delete观察

           我们会发现构造函数和析构函数都调用了:
           
            观察看到也申请了空间:      

           释放空间:



由此可以总结:

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

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



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





猜你喜欢

转载自blog.csdn.net/qq_36818386/article/details/75303109