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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
BARRAKUDA099
0 / 0 / 0
Регистрация: 16.09.2012
Сообщений: 6
#1

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

14.11.2012, 16:34. Просмотров 274. Ответов 3
Метки нет (Все метки)

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! Буду признателен=)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2012, 16:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос memory leaks | Деструктор (C++):

Write some short C or C++ code that slowly leaks memory until all the resources are consumed - C++
сабж :D

Почему создается виртуальный деструктор A, а в таблице виртуальных функций лежит деструктор B - C++
Почему я делаю виртуальным деструктор A, а в таблице виртуальных функций лежит деструктор B?

Деструктор - C++
В каком случае необходимо явно определять деструктор?

Деструктор! - C++
Как вызвать деструктор? #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;string&gt; using...

Деструктор - C++
здравствуйте. подскажите пожалуйста ... почему деструктор некорректно работает ? не хочет уничтожает объекты динамического массива (...

Деструктор - C++
Не понимаю почему в проге не работает строка cout &lt;&lt; &quot;Удаляем элемент списка!&quot;; вроде деструктор вызываеться автоматически, как пишет...

3
Croessmah
Эксперт CЭксперт С++
13420 / 7574 / 855
Регистрация: 27.09.2012
Сообщений: 18,663
Записей в блоге: 3
Завершенные тесты: 1
14.11.2012, 16:36 #2
Пройдитесь по всем элементам и освободите память, которую они занимают.
0
BARRAKUDA099
0 / 0 / 0
Регистрация: 16.09.2012
Сообщений: 6
14.11.2012, 16:38  [ТС] #3
Насколько я понимаю проходить нужно с конца списка на начало? ибо если мы удалим первый элемент мы потеряем второй и последующие так?
0
Croessmah
Эксперт CЭксперт С++
13420 / 7574 / 855
Регистрация: 27.09.2012
Сообщений: 18,663
Записей в блоге: 3
Завершенные тесты: 1
14.11.2012, 16:47 #4
Как Вы будете с конца походить? У Вас список односвязный.
Сохраняете указатель next в переменную и удаляете элемент. И так пока не дойдете до конца.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2012, 16:47
Привет! Вот еще темы с ответами:

деструктор - C++
опять же проблема с лабой. помоги дописать деструктор. #include &quot;stdafx.h&quot; #include &lt;string&gt; #include &lt;iostream&gt; using...

Деструктор - C++
Я написал деструктор, но препод сказал переделать так как надо было смотреть на то, как я выделял память. Помогите исправить. int **m6; ...

Деструктор - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #define _CRTDBG_MAP_ALLOC #include &lt;crtdbg.h&gt; using namespace std; class list{ ...

Деструктор - C++
В чем проблема?)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
14.11.2012, 16:47
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru