void Dialog::slNew(){ for (int i = 0; i<100000; ++i) { TestClass *tc = new TestClass; //создаю мои объекты tc->setValue(++cnt); //это просто для проверки объекта потом clist.append(tc); //в лист указатели на объекты вношу }}
void Dialog::slDel(){ while (!clist.isEmpty()) delete clist.takeFirst();}
C++ (Qt)void MainWindow::on_pushButton_clicked(){ for (int i = 0; i < 1000000; ++i) list.append(new QString("Test")); while (!list.isEmpty()) delete list.takeFirst();}
#ifndef MYCLASS_H#define MYCLASS_Hclass TestClass{ public: TestClass(); int getValue(); void setValue(int value); private: int testvalue;};#endif // MYCLASS_H
#include "myclass.h"TestClass::TestClass(){ testvalue = 0;}int TestClass::getValue(){ return testvalue;}void TestClass::setValue(int value){ testvalue = value;}
C++ (Qt)#include <QDebug>....TestClass::~TestClass(){ .... qDebug() << "TestClass::dtor called"; ....}
C++ (Qt)boost::object_pool<TestClass> testClassAlloc;....void Dialog::slNew(){ for (int i = 0; i<100000; ++i) { //TestClass *tc = new TestClass; //создаю мои объекты TestClass *tc = testClassAlloc.construct(параметры конструктора); tc->setValue(++cnt); //это просто для проверки объекта потом clist.append(tc); //в лист указатели на объекты вношу }}void Dialog::slDel(){ while (!clist.isEmpty()) { //delete clist.takeFirst(); TestClass* tc = clist.takeFirst(); testClassAlloc.destroy(tc); }}
C++ (Qt)#include <memory>std::allocator<TestClass> stdTestClassAlloc;....TestClass *tc = stdTestClassAlloc.allocate(1);new (tc) TestClass(параметры коструктора); //создаю мои объекты....TestClass* tc = clist.takeFirst();tc->~TestClass();stdTestClassAlloc.deallocate(tc);