我有一个名为" poly"的课程。我想动态创建一个指向多边形对象的指针数组。变量" totalPolynomials"保存多边形对象的数量。
这是我的代码来声明数组:
poly **polyPtr;
polyPtr = new poly *[totalPolynomials];
我成功创建了多边形对象,但不知道如何将它们的指针一个接一个地存储在数组中......
答案 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>>
取决于您的确切愿望。