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];