我想創建一個foo的動態數組,其中的項數是x。參數y和z將被傳遞給項目foo的構造函數。我希望做類似的東西:動態數組初始化
Foo* bar = new Foo(y, z)[x];
但是所產生以下編譯器錯誤:
error: expected `;' before '[' token
因此,與有經驗的朋友說後,他給了我這一點,他承認是一個懶散的這樣做的方式,但它的作品。我想知道,有沒有更好的/正確的方法?
Foo* bar = (Foo*) new int[x];
for (int i = 0; i < x; i++) {
bar[i] = Foo(y, z);
}
你和你的朋友應該得到一個[好書](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)以獲得理解的良好基礎。我的意思是說第二個代碼塊是錯的,爲什麼要分配'int'然後投射到'foo'?這幾乎可以肯定是未定義的行爲。 – GManNickG 2010-09-02 17:25:54