我正在创建一个程序,每次按某个按钮时都会生成一个新对象。我想按顺序命名这些对象,而不必在一定数量的对象中进行硬编码。在C ++中有没有办法可以做到这一点?
我希望代码是这样的
if (key == 'n')
{
new Object *shape1*;
}
然后下次它通过
if (key == 'n')
{
new Object *shape2*;
}
然后在完成所有对象后,我希望记录所创建的数字(全局变量跟踪计数),以便能够打印所有这些。 我在一两年内没有使用过C ++,所以我不确定是否有更好的方法可以解决这个问题,或者忘记什么。如果你有更好的方法,我愿意接受任何想法。
谢谢!
答案 0 :(得分:1)
我不鼓励你试图动态命名变量。相反,您可以将动态对象添加到容器中。
std::vector<Object*> objects;
if (key == 'n')
{
Object* newObject = new Object;
objects.push_back(newObject);
}
然后你可以使用索引作为增量变量名,例如
objects[3]
这样做还可以比清除未知名称的delete
个未知数量的变量更容易清理分配的内存。