如何使用参数初始化对象数组?

时间:2016-02-15 13:25:27

标签: c++

当我创建一个构造函数有参数的对象时,我该如何初始化它? 例如,如果我写这样的东西:

object* array = new array[arraynumber];

如果构造函数没有默认参数,编译器将抛出错误。 我该怎么做才能解决这个问题?

2 个答案:

答案 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)
});

Demo

std::vector似乎更好。