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

Утечка памяти (Expression: _CrtIsValidHeapPointer(pUserData)) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дано целое число в диапазоне 10–40 http://www.cyberforum.ru/cpp-beginners/thread565037.html
Дано целое число в диапазоне 10–40, определяющее количество учебных заданий по некоторой теме. Вывести строку-описание указанного количества заданий, обеспечив правильное согласование числа со...
C++ Соединение строки с числом Есть строка char* a = "str". Как можно соединить ее с числом, чтобы получилось str1, str2 ... strN? Т.е. все это проходит в цикле. Пробовал strcat и strcpy, но не получается. http://www.cyberforum.ru/cpp-beginners/thread565030.html
C++ Заполнение и сохранение массива структур не работает...
Я хочу сделать справочник кулинарных рецептов, (в него входит: название рецепта, ингредиенты(это у меня и вызывает затруднение) и приготовление). Все было бы хорошо, НО ингредиентов может быть...
C++ Параллельные вычисления MPI
Всем привет, ребят объясните пожалуйста почему работает не корректно ? задание такое : нужно посчитать сумму элементов 2х массивов, число элементов произвольное, число процессов тоже. вычисление...
C++ Дано предложение. Создать файл и записать в него все символы данного предложения, отличные от цифр. Вывести содержимое файла на экран http://www.cyberforum.ru/cpp-beginners/thread565013.html
Ребята, помогите, пожалуйста!
C++ Непонятны некоторые операторы Читал, читай книгу по C++. Что понял что нет. Пожалуйста помогите с такими вопросами: - Для чего нужна операция "?:" ?, я этого не понял. - пожалуйста обьясните русским языком что такое перегрузка... подробнее

Показать сообщение отдельно
Avazart
Эксперт С++
7432 / 5471 / 310
Регистрация: 10.12.2010
Сообщений: 24,383
Записей в блоге: 17
09.05.2012, 02:37
Bers,Тут проблема в самом "умном" указателе, а не в деструкторе, да и к данному случаю это не имеет никакого отношения, поэтому моё утверждение верно.
(Сам умный указатель подразумевает динамическое создание)

Представим себе, что деструктор ClassA::~ClassA мы не определяли (его тело пустое, т.к. за автоматичское удаление содержимого указателей m_shared и m_scoped отвечают деструкторы умных указателей). Итак, деструктор мы не определяли, а это значит, что его за нас должен сгенерировать компилятор. Где он это сделает? Очевидно, что при компиляции файла main.cpp, деструктор для ClassA понадобиться при выходе из тела функции main(). Значит, именно здесь будет генерироваться тело ~ClassA, которое, в свою очередь, потянет за собой генерацию тел деструкторов для шаблонов shared_ptr и scoped_ptr для типа ClassB, которые в своем теле будут вызывать delete для указателей этого типа. Который (смотрим внимательно) в этой точке у нас является неполным типом.
Ага, приплыли.

Что произойдет, если мы попытаемся собрать приведенный код без деструктора?
Мы увидим, как добрые люди, писавшие умные указатели для boost, позаботились о нас.
Источник http://ru-cpp.livejournal.com/369997.html

Добавлено через 9 минут
Как можно использовать методы SetInformation и ShowInformation класса HeatingSystemв в функции main?
Ну вам виднее как их использовать вы ведь писали класс?
Не понимаю, в чем вопрос?
C++
1
2
3
4
5
6
7
8
int main()
{
    HeatingSystem heatingSystem; 
 
    heatingSystem.SetInformation();
    heatingSystem.ShowInformation();
return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.