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

Автоматический вызов деструктора компилятором - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Библиотека HDFeos и geotiff http://www.cyberforum.ru/cpp-beginners/thread1165031.html
Добрый день. В университете дали задания на писать программу похожую на HEGTool. Она из файла с расширением hdf рисует карту по выбору нужной местности. Но возникли трудности... Есть люди которые...
C++ Поиск полинома Ньютона (Паскаль -> C++) Вот код паскаля: Function POlinom(n: integer; d:real; x,y :per):real; var l:real; k,i:integer; p: real; begin L:=y; P:=1; http://www.cyberforum.ru/cpp-beginners/thread1165026.html
Наследование функции C++
Условие: функция должна быть задана вне класса. { class evm { protected: char *a; public: evm(const evm& src) { int size = strlen(src.a) + 1;
Определить значение целочисленного массива по заданному правилу C++
Даны вещественные массивы B.Опpеделить значения целочисленного массива D по следующему правилу: D=1, если сумма элементов i‐й строки больше 0, D=0 в пpотивном случае. Значение переменной i...
C++ Как легко прировнять массиву английский алфавит? http://www.cyberforum.ru/cpp-beginners/thread1164982.html
Привет форумчане. Прошу помочь новичку кодеру,как прировнять английский алфавит в массив без перебора всего алфавита. Спасибо.
C++ Запись строки в файл char name; cin >> name; strcpy(file_txt, name); strcat(file_txt, ".txt"); ofstream user(file_txt); user.open(file_txt); user << name; ... подробнее

Показать сообщение отдельно
ValeryS
Модератор
6681 / 5090 / 477
Регистрация: 14.02.2011
Сообщений: 17,090
03.05.2014, 17:30
Цитата Сообщение от Mr_Torture Посмотреть сообщение
а не могли бы вы чуточку пояснить, что хорошего произойдет, если использовать new?
произойдет другое
ни хорошее, ни плохое а просто другое
Цитата Сообщение от Mr_Torture Посмотреть сообщение
Разве он точно так же не вызывает конструктор?
он это кто?
никто специально деструкторы не вызывает(вообще то можно но чаще всего это не нужно)
деструкторы вызываются автоматически при разрушении объектов
если создать объект в куче( опреатор new)то разрушит объект оператор delete
а если создать в стеке, то объект будет разрушен при выходе из области видимости
например
C++
1
2
3
4
5
6
7
{
 int a=5; //создали в стеке
 int *b=new int(5);// создали в куче, а в стеке создали указатель  b на объект в куче
............................
delete b;// объект в куче разрушен, но указатель остался, указывает "в космос" 
}
// вот здесь разрушен и объект a  и указатель b
Добавлено через 3 минуты
теперь такой вариант
C++
1
2
3
4
5
6
7
{
 int a=5; //создали в стеке
 int *b=new int(5); //создали в куче, а в стеке создали указатель  b на объект в куче
............................
 
}
// вот здесь разрушен и объект a  и указатель b
указатель разрушен, нет его
но объект в памяти остался, никто его не разрушал delete
получили так называемую "утечку памяти" объект в памяти есть и он валидный, но достучатся до него никто не может, указатель утерен
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru