h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <boost/shared_ptr.hpp>
#include <vector>
using namespace std;
using namespace boost;
namespace Ui {
class MainWindow;
}
class CTst
{
public:
int i;
~CTst(){}
};
typedef shared_ptr<CTst> pCTst;
class CTsts
{
public:
vector<pCTst> tsts;
CTsts();
~CTsts();
};
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
shared_ptr<CTsts> base;
~MainWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
CTsts::CTsts(){
for(int i=0;i<5000000;i++)
{
pCTst ttst(new CTst());
tsts.push_back(ttst);
}
}
CTsts::~CTsts()
{
for(int i=0;i<tsts.size();i++)
((pCTst)tsts.at(i)).reset();
tsts.clear();
}
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
shared_ptr<CTsts> tbase(new CTsts());
base = tbase;
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
base.reset();
}
отжирает 250 метров, при нажатии на кнопку (очистить объект) остается отжирать 200 метров ЧЯДНТ???