вот например если так:
#include <QtCore>
class TMyClass
{
public:
TMyClass() {}
int param1;
QString param2;
};
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QList<TMyClass *> list1;
QList<TMyClass *> list2;
list1.clear();
list2.clear();
//заполняю списки
for (int i=0;i<10;i++) {
list1.append(new TMyClass);
list2.append(new TMyClass);
}
qDebug() << "Lists after appends:";
qDebug() << "list1.count()=" << list1.count();
qDebug() << "list2.count()=" << list2.count();
//удаляю записи из списков
QList<TMyClass *> *list=0;
TMyClass *myc=0;
for (int i=0;i<2;i++) {
switch (i) {
case 0: list = &list1; break;
case 1: list = &list2; break;
}
while (!list->isEmpty()) {
myc=list->first();
if (myc) {
//тут удаляю указатель и из списка запись
delete list->takeFirst();
}
}
}
qDebug() << "Lists after delete:";
qDebug() << "list1.count()=" << list1.count();
qDebug() << "list2.count()=" << list2.count();
return app.exec();
}
выводит:
D:\projects\QList>release\list.exe
Lists after appends:
list1.count()= 10
list2.count()= 10
Lists after delete:
list1.count()= 0
list2.count()= 0
если в указателе живет адрес исходного списка, то почему нет? другое дело если ты делаешь копию
т.е? ну, если делаю копию - то будет происходить очистка КОПИИ - а не исходного списка...
....
Просто я спрашиваю потому, что у меня допустим этих исходных списков может быть штук 10 .. и чтобы не писать код очистки каждого - я вот подумал начсет указателя...
Хотя если посмотреть вывод (то что я привел) - то вроде так можно сделать
(хотя - хез... )