我有一个小问题:我做了一个小程序,每当用户点击QPushButon时,用他的指针创建一个新对象,这是我的代码:
ajoute *az = new ajoute;
QVBoxLayout *layoutPrincipal = new QVBoxLayout;
问题是,每个创建的对象都有相同的名称,所以如果我想删除一个对象,可能会出错?
P.S:抱歉我的英语不好,我是法国人
答案 0 :(得分:2)
您的对象很可能是堆栈,因此下一个实例不会“记住”前一个实例。需要更多代码来微调解释。
常见解决方案包括:
答案 1 :(得分:2)
问题是每个创建的对象都有相同的名称,所以如果我想删除一个对象,可能会有错误?
您似乎正在创建一组动态分配的对象,而您不知道如何存储其指针。最简单的方法是使用QVector<ajoute*>
并存储动态分配的对象:
QVector<ajoute*> v;
现在无论何时创建ajoute
,您都可以:
v.push_back( new ajoute );
这将在向量(容器)的末尾添加指针。然后您可以按顺序访问它们:
v[0]; // first
v[1]; // second
v[2]; // third
显然你可以将它们删除为:
delete v[0]; // example
请记住删除矢量中的指针:
v.remove(0);