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);