当我创建一个构造函数有参数的对象时,我该如何初始化它? 例如,如果我写这样的东西:
object* array = new array[arraynumber];
如果构造函数没有默认参数,编译器将抛出错误。 我该怎么做才能解决这个问题?
答案 0 :(得分:1)
您可以使用std::vector
管理数组引用: http://en.cppreference.com
std :: vector是一个封装动态大小数组的序列容器
struct object
{
int i;
std::string s;
explicit object(int i, std::string const& s): i(i), s(s) {}
};
std::vector<object> array(arraynumber, object{4, "hello"});
答案 1 :(得分:0)
您可以执行以下操作:
std::unique_ptr<object[]> fs(new object[6] {
object(4), object(8), object(15), object(16), object(23), object(42)
});
但std::vector
似乎更好。