当需要列表类型的容器时,我一直使用 vector 来存储对象。
我想知道如何将构造函数传递给数组指针。如果对象foo没有构造函数,则以下内容在C++ 03中有效
foo* p = new foo[5]()
现在,如果
foo
的构造函数需要int
怎么办,我如何在上述语句中传递该构造函数? 最佳答案
从C++ 11开始,您可以使用大括号初始化程序:
foo * p = new foo[5] { 1, 2, 3, 4, 5 }; // better: "auto p = ..."
这假定
foo
可从int
隐式构造。但是您也可以使用容器:
std::vector<foo> v { 1, 2, 3 };
std::list<foo> w { 1, 2, 3 };
也许:
std::unique_ptr<foo[]> q(new foo[4] { 1, 2, 3, 4} );
关于c++ - 将构造函数传递给指针数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16003862/