29 / 29 / 18
Регистрация: 13.02.2010
Сообщений: 145
1

Вызов деструктора

15.10.2011, 12:28. Показов 5973. Ответов 2
Метки нет (Все метки)

Есть написанный мною код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
 
class Foo
{
private:
    int *key;
public:
    Foo (const int a=0) { key = new int (a); std:: cout << "Constructor" << std::endl;}
    ~Foo () {delete key; std:: cout << "Destructor" << std::endl;} 
};
 
 
void set ()
{
    Foo a;
}
 
int main(int a1=1)
{
    Foo a;
    set();
    system ("pause");
    return 0;
}
В выводе:"Constructor Contructor Destructor". Получается 1 деструктор не был вызван (по крайней мере перед system("pause"). Но как явно вызвать деструктор к классу Foo? (когда пишу delete выдает ошибку, что нельзя преобразовать Foo к void, а дектруктор ведь не принимает никаких значений.)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2011, 12:28
Ответы с готовыми решениями:

Вызов деструктора
Здравствуйте ,подскажите пожалуйста ,есть вот такой код ... При создании объекта MyClass в...

Вызов деструктора
Доброго вам времени суток. Проблема в том, что деструктор не выводит сообщение без этой строки....

Вызов деструктора
При ручном вызове деструктора, освобождается ли память*

Вызов деструктора
Вызывается ли деструктор объекта при завершении программы? а при аварийном завершении? А если снять...

2
Заблокирован
15.10.2011, 12:32 2
запусти в консоли и появится ещё один Destructor, он вызывается при выходе из scope. Явно впринципе можно вызвать a.~Foo() но не в твоём примере
1
программист С++
841 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
15.10.2011, 12:47 3
Даня98, http://liveworkspace.org/code/... 7a42e0248c все четко работает. Не надо ничего вызывать явно
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2011, 12:47
Помогаю со студенческими работами здесь

Повторный вызов деструктора
{ bar b; b.~bar(); } В данном примере деструктор bar вызовется дважды. Как у уже удаленного...

Двойной вызов деструктора
Здравствуйте, уважаемые. Вот столкнулся с такой проблемой... CharRow - это класс, который...

Не понятный вызов деструктора
Здравствуйте. Ситуация такая, есть класс MyClass к примеру, и при таком коде: //разные инклюды...

Явный вызов деструктора
Есть класс Person, с полями string,string,long. Исходные данные хранятся в файле. Нужно сделать...


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

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

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