Форум программистов, компьютерный форум CyberForum.ru

memory leaks | Деструктор - C++

Восстановить пароль Регистрация
 
BARRAKUDA099
0 / 0 / 0
Регистрация: 16.09.2012
Сообщений: 6
14.11.2012, 16:34     memory leaks | Деструктор #1
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#ifndef INTEG_H_
#define INTEG_H_
#include <iostream>
 
using namespace std;
 
class integer{
    private:
        int value;
        int i;
        integer *next;
    public:
        integer(int cvalue); 
        void add(int cvalue);
        int length();
        void print();
        void search(int cvalue);
        ~integer();
};
 
integer::integer(int cvalue){
    value = cvalue;
    i=0;
    next = 0;
}
 
integer::~integer(){
    integer *curr = this;
    //Деструктор
}
 
void integer::add(int cvalue){
    integer *curr = this;
    int count=1;
    while(curr->next!=0){
        curr = curr->next;
        count++;
    }
    curr->next = new integer(cvalue);
    curr->i=count;
}
int integer::length(){
    int count=0;
    integer *curr = this;
    while(curr!=0){
        curr=curr->next;
        count++;
    }
    return count;
}
 
void integer::print(){
    integer *curr = this;
    while(curr!=NULL){
        cout<<endl<< curr->i <<" "<< curr->value <<endl;
        curr=curr->next;
    }
}
 
void integer::search(int cvalue){
    integer *curr = this;
    int error=0;
    while(curr!=NULL){
        if(curr->value == cvalue){
            cout << curr->i;
            error+=1;
            break;
        }
        curr=curr->next;
    }
        if(error==0){
            cout << "Value not found!";
        }
}
#endif;
В общем, пишу связанный список (типо имитация массива) Возникла проблема с написанием деструктора help me peoples! Буду признателен=)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2012, 16:34     memory leaks | Деструктор
Посмотрите здесь:

деструктор C++
C++ Out of memory
Деструктор C++
Деструктор C++
Деструктор C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,920
Записей в блоге: 2
Завершенные тесты: 1
14.11.2012, 16:36     memory leaks | Деструктор #2
Пройдитесь по всем элементам и освободите память, которую они занимают.
BARRAKUDA099
0 / 0 / 0
Регистрация: 16.09.2012
Сообщений: 6
14.11.2012, 16:38  [ТС]     memory leaks | Деструктор #3
Насколько я понимаю проходить нужно с конца списка на начало? ибо если мы удалим первый элемент мы потеряем второй и последующие так?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,920
Записей в блоге: 2
Завершенные тесты: 1
14.11.2012, 16:47     memory leaks | Деструктор #4
Как Вы будете с конца походить? У Вас список односвязный.
Сохраняете указатель next в переменную и удаляете элемент. И так пока не дойдете до конца.
Yandex
Объявления
14.11.2012, 16:47     memory leaks | Деструктор
Ответ Создать тему
Опции темы

Текущее время: 08:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru