2

我试图将对象向量放在一个类中并遇到范围问题。我需要用不同的参数构造每个。我试图避免空的构造函数和初始化函数,因为这违背了拥有构造函数的目的。我有这样的事情:

class inner
{
    inner::inner(string &dev);
    inner::~inner();
};

class outer
{
    vector<inner> devs;
};

这将创建一个空向量。然后我需要在外部方法中构造 devs 矢量对象。不幸的是,它们超出了范围,并且正在以相同的方法调用析构函数。我需要范围是向量的范围(即:外部对象),而不是实例化向量元素的方法。这是我的构造代码:

for (unsigned i=0; i<dev_strings.size(); i++)
{
    devs.resize(i+1, inner(dev_strings[i]));
}

我想我可以使用 new 来获取内部对象,但是它们我有一个指向对象的指针向量,并且必须显式删除,这似乎违背了让向量为其资源管理内存的目的。我宁愿避免这种情况。

4

0 回答 0