动态创建一个对象指针数组

时间:2014-04-20 15:00:10

标签: c++ arrays class object

我有一个名为" poly"的课程。我想动态创建一个指向多边形对象的指针数组。变量" totalPolynomials"保存多边形对象的数量。

这是我的代码来声明数组:

poly **polyPtr;                         
polyPtr = new poly *[totalPolynomials];

我成功创建了多边形对象,但不知道如何将它们的指针一个接一个地存储在数组中......

2 个答案:

答案 0 :(得分:4)

如果您正在创建它们然后想要存储它们,您可以执行类似

的操作
poly ** polyPtr;
polyPtr = new poly* [totalPolynomials];

for(int i = 0; i<totalPolynomials; ++i)
{
    polyPtr[i] = new poly(arguments);
}

答案 1 :(得分:1)

你实际上并没有在数组中设置指针,所以一个演示,你会写这样的东西:

poly** polyPtr = new poly*[totalPolynomials];
for(int i = 0; i < totalPolynomials; ++i)
    // You may need to pass constructor arguments here.
    polyPtr[i] = new poly();
    // or polyPtr[i] = myOtherPointer; in case you just wanna share it.

存储指针类似,而不是为新指针分配内存。基本上,您需要用指针替换new。

如果没有警告你应该考虑更高级别的数据和内存管理,而不是在使用C ++进行编程以提高工作效率和心理健康时,没有答案。

所以,我建议使用这样的东西:

std::vector<std::shared_ptr<poly>>

std::vector<std::unique_ptr<poly>>

取决于您的确切愿望。