1. 程式人生 > >C++面試常見題目1_C++與C,Java的區別

C++面試常見題目1_C++與C,Java的區別

  1. new/delete是C++的運算子,malloc/free是C/C++語言的標準庫函式。
  2. new無需顯式地指出所需記憶體的尺寸,編譯器會根據型別資訊自行計算。而malloc則需要顯式地指出所需記憶體的尺寸。
  3. new操作符記憶體分配成功時,返回的是物件型別的指標,型別嚴格與物件匹配,無須進行型別轉換。而malloc記憶體分配成功則是返回void * ,需要通過強制型別轉換將void*指標轉換成我們需要的型別。
  4. new不止是分配記憶體,而且會呼叫類的建構函式,同理delete會呼叫類的解構函式,而malloc則只分配記憶體,不會進行初始化類成員的工作,同樣free 也不會呼叫解構函式。