malloc/free ,new/delete
相信大家对上面两个命令都不默认
大家这两个命令其实是又区别的
首先
1.malloc 与free 是C++/C 语言的标准库函数,new/delete 是C++的运算符
2.不能够把执行构造函数和析构函数的任务强加于malloc/free
3.两者都可以使用异常出错函数,不过个人觉得malloc/free对于异常出错处理更加方便
malloc/free这个命令只是对内存操作,纯内存操作函数
而new/delete命令会执行构造函数和析构函数
所以我的意见是:
对于非系统内部数据的话,尽量使用new/delete
当然如果是自己新建类的话,也使用new/delete,不然怎么调用构造函数和析构函数那?
对于系统内部函数的话,使用malloc/free
int *p = (int*)malloc(sizeof(int)*num);
class A
{
A();
~A();
};
A *a = new A;
new也有一个好处,可以处理不同的构造函数
Example Code:
class A
{
A();
~A();
}
A *a = new A;
在类声明种加入
A(int x,int y);
就可以使用
A *a = new A(1,2);