Форум программистов, компьютерный форум, киберфорум
Наши страницы

Ненужное удаление объектов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка с double в в проге по интегрированию ф-ции методом парабол http://www.cyberforum.ru/cpp-beginners/thread994700.html
#include <iostream.h> #include <math.h> #include <conio.h> #include <iomanip.h> double integral(double a, double b, double m, double p, double k, double n) { double h, i, x, f, s1, s2; ...
C++ Уменьшение времени работы программы Добрый вечер. Решил задачу, и решил прогнать по ********. Программа заваливается по времени выполнения, выходит 2.5 секунд, в идеале должно быть не меньше одной. Помогите плиз. Вот задача: ... http://www.cyberforum.ru/cpp-beginners/thread994695.html
C++ Напишите программу с if
Предположим, что A говорит: "Или я лжец, или два плюс два - пять". К какому заключению можно прийти на основании этого утверждения?
поскажите или напишите программу с циклом if( C++
29. Предположим, что A говорит: "Или я лжец, или B рыцарь". Кто из двух персонажей A и B рыцарь и кто лжец?
C++ Переменная в TextBox http://www.cyberforum.ru/cpp-beginners/thread994678.html
пишу в TextBox переменную: float p=1; textBox2->Text = p.ToString(); но допустим у меня g=g+1;
C++ Задача по программированию(неудачный перевод кода) Во время экперимента Накодиллы было случайно получено сообщение инопланетян, содержащее формулу вида A + B = C. Общественности стало интересно, какую же систему счисления используют инопланетяне.... подробнее

Показать сообщение отдельно
xam max
3 / 3 / 0
Регистрация: 27.09.2009
Сообщений: 200
01.11.2013, 23:36  [ТС]
Нет список не локальный, список - член класса, проблема как я понял заключается в том что у меня создается объект polygon которому передаются ссылки на объекты из списка pointmass, после окончания цикла, объект удаляется и пытается удалить точки которые в pointmass.... ну по крайней мере прога рушится в деструкторе polygon.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
for(int i=0;i<720;i+=vertstep)
        for(int j=0;j< 360;j+=horstep)
        {
            x=(R+inc*i+r*qCos(j*180/M_PI))*qSin(i*180/M_PI);
            y=(R+inc*i+r*qCos(j*180/M_PI))*qCos(i*180/M_PI);
            z=r*qSin(j*180/M_PI)+step*i;
            QVector4D Point3D(x,y,z,1);
            Point3D = Point3D * TransformMatrix;
            QPointF Point2D(Point3D.x(),Point3D.y());
            PointList.append(Point2D);
            if(PointList.count()>interval)
            {
                pos=PointList.count()-interval-1;
                now = PointList.count()-1;
                if(!(now+1 % interval ==0) )
                {
                    Face face1(&PointList[now],&PointList[pos]);
                    Face face2(&PointList[now],&PointList[pos+1]);
                    Face face3(&PointList[pos],&PointList[pos+1]);
                    FaceList.append(face1);
                    FaceList.append(face2);
                    FaceList.append(face3);
                    MyPolygon p(&PointList[now],&PointList[pos],&PointList[pos+1]);
                    p.FaceMass[0]=&face1;
                    p.FaceMass[1]=&face2;
                    p.FaceMass[2]=&face3;
                    PolygonList.append(p);
                }
polygon.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <face.h>
#include <QVector4D>
 
class MyPolygon
{
public:
    MyPolygon();
    MyPolygon(QPointF *point1,QPointF *point2,QPointF *point3);
    MyPolygon(const MyPolygon &p);
    Face **FaceMass;
    QPointF **PointMass;
    ~MyPolygon();
    static int Dim;
};
polygon.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
MyPolygon::MyPolygon(QPointF *point1,QPointF *point2,QPointF *point3)
{
    FaceMass = new Face *[Dim];
    PointMass = new QPointF *[Dim];
    PointMass[0]=point1;
    PointMass[1]=point2;
    PointMass[2]=point3;
}
 
MyPolygon::MyPolygon()
{
    FaceMass = new Face *[Dim];
    PointMass = new QPointF *[Dim];
}
 
MyPolygon::MyPolygon(const MyPolygon &p)
{
    this->Dim = p.Dim;
    this->FaceMass = new Face*[Dim];
    this->PointMass = new QPointF *[Dim];
    for(int i=0;i<Dim;++i)
    {
        FaceMass[i]= new Face(*(p.FaceMass[i]));
        PointMass[i]= new QPointF(*(p.PointMass[i]));
    }
}
 
int MyPolygon::Dim=3;
 
MyPolygon::~MyPolygon()
{
    for(int i=0;i<Dim;++i)
    {
        delete FaceMass[i];
        delete PointMass[i];
    }
    delete [] FaceMass;
    delete [] PointMass;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru