创建顺序类对象

时间:2015-03-02 18:51:14

标签: c++ class

我正在创建一个程序,每次按某个按钮时都会生成一个新对象。我想按顺序命名这些对象,而不必在一定数量的对象中进行硬编码。在C ++中有没有办法可以做到这一点?

我希望代码是这样的

if (key == 'n')
{
    new Object *shape1*;
}

然后下次它通过

if (key == 'n')
{
    new Object *shape2*;
}

然后在完成所有对象后,我希望记录所创建的数字(全局变量跟踪计数),以便能够打印所有这些。 我在一两年内没有使用过C ++,所以我不确定是否有更好的方法可以解决这个问题,或者忘记什么。如果你有更好的方法,我愿意接受任何想法。

谢谢!

1 个答案:

答案 0 :(得分:1)

我不鼓励你试图动态命名变量。相反,您可以将动态对象添加到容器中。

std::vector<Object*> objects;

if (key == 'n')
{
    Object* newObject = new Object;
    objects.push_back(newObject);
}

然后你可以使用索引作为增量变量名,例如

objects[3]

这样做还可以比清除未知名称的delete个未知数量的变量更容易清理分配的内存。