1、new/delete是C++中新增的,它们和malloc/free有着类似的功能是动态申请内存和释放内存。它们之间的区别是:new/delete是运算符,malloc/free是函数,对于非内部数据而言,由于要调用构造函数和析构函数,malloc/free是库函数,不在编译器的控制范围内,因此引入运算符new/delete来完成。
2、对于内部数据而言,使用malloc/free或new/delete没有什么区别,但是对于类类型时,则需要使用new/delete。
3、总结它们之间的区别为两点:
使用new/delete时会调用构造函数和析构函数,而malloc/free不会;
new/delete是运算符,malloc/free是函数。
阅读(571) | 评论(0) | 转发(0) |