Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Явный вызов деструктора 
:(
    Опции темы
apook
Дата 24.9.2007, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



Если в одной функции являющейся членом класса произошел ошибка и вызвана функция error(не являющяяся членом какого-либо класса вообще) которая после сообщения об ошибке производит exit( 1 ); то деструктор не сробатывает.  Что лучше сделать чтоб срабатывал деструктор? 


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
bsa
Дата 24.9.2007, 15:26 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(apook @ 24.9.2007,  15:24)
Если в одной функции являющейся членом класса произошел ошибка и вызвана функция error(не являющяяся членом какого-либо класса вообще) которая после сообщения об ошибке производит exit( 1 ); то деструктор не сробатывает.  Что лучше сделать чтоб срабатывал деструктор?

Пользоваться исключениями.
PM   Вверх
rukudias
Дата 24.9.2007, 22:45 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 28.2.2007

Репутация: 0
Всего: 0



Ну умники продолжаем?
Код

#include <iostream>
using namespace std;
class a
{
public:
    a()
    {
    }
    ~a()
    {
        cout<<"dead"<<endl;
    }
    void sets()
    {
                       cout<<"umniki"<<endl;
    }
};
void main()
{
    a myobj;
    a myobj2;
    myobj.~a();
                myobj.sets();

}

Че будет? smile 
PM MAIL   Вверх
Daevaorn
Дата 24.9.2007, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(rukudias @  24.9.2007,  23:45 Найти цитируемый пост)
Че будет? smile  

Ошибка компиляции. main должен возвращать int. Если эту оплошность исправить то
Цитата

dead
umniki
dead
dead

PM MAIL WWW   Вверх
rukudias
Дата 25.9.2007, 07:40 (ссылка)    | (голосов:7) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 28.2.2007

Репутация: 0
Всего: 0



Скорее ошыбку в ДНК! smile 
PM MAIL   Вверх
Daevaorn
Дата 25.9.2007, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(rukudias @  25.9.2007,  08:40 Найти цитируемый пост)
Скорее ошыбку в ДНК! smile  

по теме сказать нечего?
PM MAIL WWW   Вверх
rukudias
Дата 25.9.2007, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 28.2.2007

Репутация: 0
Всего: 0



какже нечего есть чего!
Сюдя я  из преведеных мною примеров я далаю вывод
что деструктор это функция которая вызывается при удалении 
обьекта а не функция которая удаляет обьект!
вот поэтому прокатует вызов метода класса после вызова деструктора явно

Знаю умники начнут умнучать типа если ты вдеструкторе удалиш свойсвта этого класса то
привызове методов использ эти свойстя будет ерор что в принципе и ежу понятно !
Всем спасибо!
Ведро извене ний за грубые слова.  smile 
PM MAIL   Вверх
archimed7592
Дата 26.9.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(rukudias @  25.9.2007,  23:39 Найти цитируемый пост)
Сюдя я  из преведеных мною примеров я далаю вывод
что деструктор это функция которая вызывается при удалении 
обьекта а не функция которая удаляет обьект!

В следующий раз открой книгу и сделай вывод, прочитав пару страниц.

Цитата(rukudias @  25.9.2007,  23:39 Найти цитируемый пост)
умники

Негоже обращаться в таком тоне к людям у которых просишь помощи >:o.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
MAKCim
Дата 26.9.2007, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



rukudias, 

M
MAKCim
Модератор: следите за своими словами



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0713 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.