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

Чтобы не было утечек памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ чтение файла в массив http://www.cyberforum.ru/cpp-beginners/thread381490.html
Дан файл из трех строк. Первая строка содержит две цифры о длине следующих строк, нужно проверить одинаковые ли элементы в след строках или нет. Пример: 3 5 1 2 3 1 2 3 4 5 или такой пример: 2 4 6 8 5 7 9 3 Помогите решить....
C++ Единицы Помогите пожалуйста, кому не сложно сделать задачку, ребят. Заранее огромное спасибо Найдите двоичное число с наименьшим числом единиц, дающее остаток P при делении на R. Ввjд В первой строке входного файла заданы натуральные числа P и R (0<=P<R, 1<=R<=1000). Вывод Выведите двоичное число, удовлетворяющее требованию задачи. Если решений несколько, выведите любое из них Пример: http://www.cyberforum.ru/cpp-beginners/thread381488.html
C++ Найти сумму ряда
Составить алгоритм и написать программу на языке С – консольное приложение, выполняющую набор действий, заданный соответствующим вариантом. Программа должна работать в текстовом режиме, обеспечивать процедуры запроса и ввода данных, сопровождающиеся соответствующими пояснениями. В случае, когда в программе выполняются действия над массивами данных, программный диалог должен начинаться с запроса...
C++ Оператор If
Всем доброго времени суток. Такой вопрос, мне нужно задать условие : baza.time >= 30 и в тоже время baza.price < 100000 чтобы вывести товар хранящихся больше месяца, стоимость которых превышает 100 000 р. Но как это записать? Я так понял нужно использовать && но у меня что то не получается Делаю так : if ((baza.time) >= 30) && (baza.price < 1) Ругается
C++ С++ ошибки http://www.cyberforum.ru/cpp-beginners/thread381451.html
Задание 1. Дано число a. Не используя никаких операций, кроме умножения и присваивания, составить программу, вычисляющую a7 за 4 операции умножения; 1. int main() { b = a*a; c = b*b; d = a*b*c; // d =a^7;
C++ Программные реализации быстрого возведения в степень реализовать быстрое возведение в степень числа минимальным количеством умножения подробнее

Показать сообщение отдельно
Bers
Заблокирован
10.11.2011, 23:58     Чтобы не было утечек памяти
Цитата Сообщение от Svinina Посмотреть сообщение
Bers, так что, получается вообще нельзя использовать указатели на класс внутри этого класса? Ведь в общем случае указанные тобой проблемы возникнут в любом случае и никак от них не избавиться?
Это же с++, можно все. И исправить в большинстве случаев тоже всегда все можно)

Вам нужно определиться: кто за какие данные отвечает. В первую очередь.

Например: "класс может хранить указатели на себе подобные объекты, но не является их владельцем. Поэтому, он не будит освобождать данные по этим указателям".

В этом случае, в диструкторе класса вектор класса только тупо делает clear() и больше ничего.

Или так: "Класс принимает право владения объектом, на который указывает пришедший к нему указатель". В этом случае, класс запоминает где лежит объект, а пришедший указатель обнуляет. Теперь у вызывающей стороны будет нулевой указатель. Она ничего не сможет с ним сделать. А класс, принявший право владения объектом должен будит отвечать за корректное уничтожение этого объекта (пробежать по всему вектору, и сделать delete каждому элементу)

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