關于new的問題
new作為一個函數,調用時會默認初始化,但是根據對象類型的不同,其情況也不同。
1 內置類型:
當new內置類型的單個對象時,為對象分配內存后其返回一個指向該對象的指針,但是并沒有對其值進行初始化,所以得到的值是隨機值。
例如:int*pa = new int;
當new內置類型的多個對象時,如數組,可以通過在后邊加一對括號來進行值得初始化,均初始化為0。
例如: int*pa = new int [10]; // 值并沒有被初始化
int*pa = new int [10] ();//值均被初始化為0
2 自定義類型:
對于自定義類型,當使用new來分配自定義類型對象時,會自動調用其默認的構造函數進行初始化,即使后邊沒有加括號。