0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 15
1

Не работает деструктор

17.03.2015, 19:07. Показов 1186. Ответов 5
Метки нет (Все метки)

Выписал пример из самоучителя, но выяснилось что не работает деструктор. В чем проблема?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
class B {
public:
    B() { cout << "Postroenie bazovoi chasti objecta.\n"; }
    ~B() { cout << "Razrushenie bazovoi chasti objecta.\n"; }
};
 
class D: public B {
public:
    D() { cout << "Postroenie proizvodnoi chasti objecta.\n"; }
    ~D() { cout << "Razrushenie proizvodnoi chasti objecta.\n"; }  
 
};
 
int main()
{ 
    D ob;
 
    system("pause");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.03.2015, 19:07
Ответы с готовыми решениями:

Не работает деструктор
#include &lt;iostream&gt; #include &lt;conio.h&gt; using std::cout; #pragma hdrstop #pragma argsused...

Не работает деструктор
Прошу помощи.Делаю лабораторную. Написал программу для подсчета суммы элементов в тех строках...

Не работает деструктор
Простой вопрос, скорее всего связано с 2019 студией. Может кто сталкивался с таким? Всё...

Не работает деструктор C++
Работаю в среде DEVc++ #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; class...

5
Эксперт С++
4978 / 3085 / 456
Регистрация: 10.11.2010
Сообщений: 11,164
Записей в блоге: 10
17.03.2015, 19:12 2
Он срабатывает после system("pause");
0
Модератор
Эксперт по электронике
8737 / 6527 / 887
Регистрация: 14.02.2011
Сообщений: 22,849
17.03.2015, 19:13 3
Цитата Сообщение от MrWalrusPower Посмотреть сообщение
но выяснилось что не работает деструктор.
как узнал?
деструктор вызывается когда отработала функция main
и окно схлопнулось, вполне мог и не увидеть
посему поставь свой system("pause"); в деструкторы
0
Одессит
242 / 87 / 44
Регистрация: 30.12.2013
Сообщений: 316
Записей в блоге: 2
18.03.2015, 00:33 4
Деструктор в данном случае срабатывает.

Не по теме:

Но деструктор базового класса, возможно, следует делать виртуальным.

C++
1
virtual ~B() { cout << "Razrushenie bazovoi chasti objecta.\n";
Потому что, если вдруг захотите создать экземпляр класса D с помощью указателя на базовый класс В:
C++
1
2
B *ob = new D;
delete ob;
тогда не будет срабатывать деструктор D, будет утечка памяти.

0
Модератор
Эксперт по электронике
8737 / 6527 / 887
Регистрация: 14.02.2011
Сообщений: 22,849
18.03.2015, 06:15 5
Цитата Сообщение от kylroma Посмотреть сообщение
тогда не будет срабатывать деструктор D, будет утечка памяти.
"смешались в кучу кони, люди"
1
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
18.03.2015, 10:28 6
Лучший ответ Сообщение было отмечено MrWalrusPower как решение

Решение

MrWalrusPower,
просто вот так попробуйте
C++
1
2
3
4
5
6
7
8
int main()
{ 
   {    
       D ob;
   }
   system("pause");
   return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2015, 10:28
Помогаю со студенческими работами здесь

не работает деструктор
это моя первая программа..я еще не особо разобралась..обьясните почему не работает деструктор и как...

Как работает деструктор?
1.Деструктор вызывается когда объект удаляется? ИЛИ 2. Сам деструктор удаляет объект? P.s....

Почему деструктор не работает?
Вроде написал все правильно, а почему то деструктор не работает, данные HI не выводит, почему ? ...

Не работает деструктор и операторы
Задача, на создание класса «вектор в n-мерном пространстве». Я первоначально сделал эту задачу с...

Почему не работает деструктор?
Подскажите пожалуйста, почему у меня не работает деструктор? #include &lt;iostream.h&gt; #include...

Почему не работает деструктор?
Собственно говоря, почему? #include &lt;iostream&gt; using namespace std; class Osoba{ public :...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru