1. 程式人生 > >關於內建型別與自定義型別呼叫new初始化問題

關於內建型別與自定義型別呼叫new初始化問題

int *p1 = new int[10];
int *p2 = new int[10]();

 p1僅僅是用new分配記憶體,並不會初始化

p2不僅分配記憶體,還會初始化為0

解釋:

對於內建型別,如int char系統自帶的呼叫new時,若沒有加()顯示呼叫它的建構函式,僅僅為分配記憶體,

對於自定義型別,就算沒有加()都會呼叫建構函式