我想创建一个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