C++ c++;就地初始化匿名数组

C++ c++;就地初始化匿名数组,c++,arrays,initialization,C++,Arrays,Initialization,我一直在寻找,但没有找到任何关于在适当位置初始化数组的信息。 我想说 Card * c = new Card( new Event * []{ new Event(a), new Event(b) } ); 但是我认为这是不可能的。是这样吗? 我知道你可以说 int ns [] = { 1,2 }; 但我似乎无法在适当的位置初始化? 最好的方法是什么 谢谢您可以通过以下方式对其进行初始化: Card cards[] = { Card(), Card() }; 或: 最后一种

我一直在寻找,但没有找到任何关于在适当位置初始化数组的信息。 我想说

Card * c = new Card( new Event * []{ new Event(a), new Event(b) } );
但是我认为这是不可能的。是这样吗? 我知道你可以说

int ns [] = { 1,2 };
但我似乎无法在适当的位置初始化? 最好的方法是什么


谢谢

您可以通过以下方式对其进行初始化:

Card cards[] = {
    Card(),
    Card()
};
或:

最后一种方法是,以后必须释放对象:

delete cards[0];
delete cards[1];

但是,一般来说,我们想要动态地完成这一切,无论是使用malloc/new还是使用
std::vector

都是关于谁负责释放所有这些对象,即
对象?因此,您不能在任何地方初始化数组,而只能在=?每个事件数组都必须有一个名称,然后我将名称传递给构造函数,或者更改构造函数以获取单个事件对象?有没有像params这样的东西?哼。。。在C++11中,您可以使用,甚至可以使用可变参数,但为此,您必须传递指针,并且需要第一个参数,比如元素数等等。
delete cards[0];
delete cards[1];