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

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

Войти
Регистрация
Восстановить пароль
 
seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216
#1

Очистка памяти через деструктор - C++

27.10.2013, 16:34. Просмотров 1224. Ответов 4
Метки нет (Все метки)

Здравствуйте ! Надо написать к определенному классу конструктор/деструктор.

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
class building                              
{
private:
    string location_street;
    unsigned int number_of_building;
public : 
    building():
       location_street("NULL"),
       number_of_building(0)
       {};                                  //дефолтный конструктор
 
       building(string loc_s,unsigned int n):           
       location_street(loc_s),                      
           number_of_building(n)                    
       {                                            
       }                                            
       string getLocation_steet()
       {
           return this->location_street;        
       }
       void setLocation_street(string location)
       {
           this->location_street=location ;
       }
       unsigned int getNumber_of_building()
       {
           return this->number_of_building;
       }
       void setNumber_of_building(unsigned int number)
       {
           this ->number_of_building=number;
       }
       ~building()                          // лабуда, а не деструктор ...
       {
              
       }
};
Насколько я понимаю, то такой деструктор как я написал выше ничего не очищает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2013, 16:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Очистка памяти через деструктор (C++):

Деструктор: освобождение памяти - C++
Как в этом случае освободить память, запутался помогите пожалуйста. class TClass { public: int a; TClass() { cout << "Ctor...

Освобождение памяти динамического массива. Деструктор - C++
Почему выдает ошибку при написании деструктора? Если его убрать, то все работает. #pragma once #ifndef MATRIX_H #define...

Двунаправленный связанный список, деструктор, утечка памяти - C++
Делаю свой двунаправленный связанный список, основу взял от сюда (сам код, там 3 списка, во всех деструкторы одинаковые) -...

Очищение памяти всего списка сравнений (деструктор) - C++
#include <iostream> #include <string> #include <cmath> #include <conio.h> #include <list> using namespace std; class...

Очистка памяти - C++
Как правильно очистить память в массиве классов Вот код конструктора, выделяющего память, и деструктора. Выдает ошибку в самом конце...

Очистка памяти - C++
При выполнении программы, память приложения растёт, а она должна быть неизменной. int main() { setlocale(LC_ALL, "Russian"); ...

4
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
27.10.2013, 16:41 #2
seruy-t, чтобы память очищать - её нужно выделять сначала А где вы её выделяете динамически?) Ваш деструктор сработает перед уничтожением объекта класса. Може в нем, что-то сделать
0
seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216
27.10.2013, 16:49  [ТС] #3
kventin_zhuk, То есть без указателей никак не обойтись, я правильно понял ? Теперь нужно переписать весь класс. Если Вам не сложно, то можете дать какой-нибудь пример где память в классе выделяется и очищается ?
0
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
27.10.2013, 16:57 #4
seruy-t,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class MyNumb
{
private:
    int *_numb;
 
public:
    MyNumb(int numb)
    {
        _numb = new int; // в конструкторе выделяем память
        *_numb = numb;
    }
 
    ~MyNumb()
    {
        delete _numb; // в деструкторе очищаем
    }
 
};
Как-то так
1
seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216
27.10.2013, 17:06  [ТС] #5
Спасибо kventin_zhuk !!! Скажите, пожалуйста, как будет выглядеть getter/setter для вашего примера ?
0
27.10.2013, 17:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2013, 17:06
Привет! Вот еще темы с ответами:

очистка памяти - C++
в данном случае деструктор очистит всё, или нет? #include "base.h" #include <cstdlib> #include <ctime> base::base(int x,int y) { ...

Очистка памяти - C++
Подскажите пожалуйста что не так делаю, создаю массив лейблов: TLabel **Labels; Labels = new TLabel*; for(int i = 0; i < rabot +...

Очистка памяти - C++
Вот сделал лабу и все работает отлично, но осталось последнее new выделяет память мне нужно добавить функцию которая будет вызыватся в...

Очистка памяти - C++
Цель: Написать программу, которая читает текст из файла и записывает в новый файл те слова, которые содержат буквы, введенные с...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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