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

Деструктор класса. Как правильно очистить память? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Алгоритм Флойда-Уоршелла http://www.cyberforum.ru/cpp-beginners/thread1171675.html
Можно ли переделать алгоритм так, что бы он выдавал не только кратчайший путь, но и указывал через какие вершины графа он проходит? Допустим есть готовая матрица смежности, ввести начальную и конечную вершины и получить желаемый ответ. Спасибо. Вот сам алгоритм (внизу есть реализация)...
C++ Программа для работы с перемешанной таблицей, использующей перемешивание сложением, по запросам оператора Вообщем народ такая беда у меня есть задание состоящие из двух частей, с первой проблем с частью А нет все норм. А вот со второй маленький косяк, двоичный файл не создается и даже не открывается. Короче вот задание: Написать программу для работы с перемешанной таблицей, использующей перемешивание сложением, по запросам оператора. Перемешанная таблица организована вектором; каждый элемент... http://www.cyberforum.ru/cpp-beginners/thread1171648.html
C++ Ошибка : " L Buffer is too small & & 0"
Здравствуйте. У меня возникла странная проблема: в недалеком прошлом рабочая программа начала выдавать ошибку: " L Buffer is too small & & 0". Не нравиться ей 30 строка, но там ничего важного нет. Помогите,пожалуйста,решить проблему. Скрин ошибки: #include "stdafx.h" #include "iostream" #include "conio.h"
Нахождение экстремумов функции двух переменных, методами: дихотомии, поразрядного сближения и равномерного пои C++
Здравствуйте, меня интересует нахождение экстремумов функции двух переменных, методами: дихотомии, поразрядного сближения и равномерного поиска. Для одной переменной, это все очень просто и понятно. А вот для двух, мне совсем ничего не понятно, и в интернете нету даже теории по нахождению экстремумов именно этими методами. Если кто, что либо знает, пожалуйста подскажите что можете. Программу для...
C++ Форматированный вывод действительного числа http://www.cyberforum.ru/cpp-beginners/thread1171602.html
Доброго времени суток! Подскажите, пожалуйста как лучше обрезать число? Пример: -1.123e020 после обрезки чтоб дало: -1.12e20 (можно ли чтобы там где е020 стало просто е20?. Это важно). Спасибо большое!
C++ Удаление лишних (подряд идущих) разделителей при разделении строки Здравствуйте! Задача такая: вводятся в массив razd N разделителей(ну там что то на подобии "!" , "." , "?" , "пробел" и тд... только этот разделитель может быть любым символом), потом вводится текст. В этом тексте могут повторяться разделители к примру так:... подробнее

Показать сообщение отдельно
Убежденный
Системный программист
 Аватар для Убежденный
14197 / 6212 / 985
Регистрация: 02.05.2013
Сообщений: 10,348
Завершенные тесты: 1
10.05.2014, 22:21     Деструктор класса. Как правильно очистить память?
Цитата Сообщение от kultttemo Посмотреть сообщение
Написал прогу бинарного дерева поиска, все работает, но нужен совет как убрать за собой, тобесь очистить память во избежания утечек.
Для начала разберитесь (в смысле - напишите или объявите закрытыми)
конструктор копирования и оператор присваивания. Без них ваш класс
перестанет работать после создания первой же своей копии.

Цитата Сообщение от Melg Посмотреть сообщение
Тогда деструктор должен выглядеть следующим образом :
C++
1
2
3
4
5
6
7
8
Tree::~Tree() {
 if (right) {
 delete right;
 }
 if (left) {
 delete left;
 }
}
По стандарту языка C++, delete на null-указателе разрешена и
не выполняет никаких действий (no-op). Поэтому можно
упростить так:

C++
1
2
3
4
5
Tree::~Tree()
{
    delete right;
    delete left;
}
 
Текущее время: 14:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru