Реализация наконец на C++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Реализация наконец на C++

Сообщение Anonymous »

Это хороший способ реализовать поведение, подобное Final, в стандартном C++?
(Без специальных указателей)

Код: Выделить всё

class Exception : public Exception
{ public: virtual bool isException() { return true; } };

class NoException : public Exception
{ public: bool isException() { return false; } };

Object *myObject = 0;

try
{
// OBJECT CREATION AND PROCESSING
try
{
myObject = new Object();

// Do something with myObject.
}

// EXCEPTION HANDLING
catch (Exception &e)
{
// When there is an excepion, handle or throw,
// else NoException will be thrown.
}

throw NoException();
}

// CLEAN UP
catch (Exception &e)
{
delete myObject;

if (e.isException()) throw e;
}

[*]Нет исключений, создаваемых объектом -> NoException -> Объект очищен
[*]Исключение, создаваемое объектом -> Обработано -> NoException -> Объект очищен
[*]Исключение, выданное объектом -> Выброшено -> Исключение -> Объект очищен -> Выброшено


Подробнее здесь: https://stackoverflow.com/questions/390 ... nally-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»