Re[3]: __try __finnaly и классы
От: Аноним  
Дата: 23.03.06 15:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Bell, Вы писали:


B>>Здравствуйте, Аноним, Вы писали:

B>>Того же результата можно добиться стандартными средствами C++:

B>>
B>>int main()
B>>{
B>>   std::auto_ptr<MyClass> cl(new MyClass());
B>>   if(cl->IsError())
B>>      return 1;
B>>   else
B>>      return 0;
B>>}
B>>

А>Не так мне не подойдет, на самом деле у меня слудующая ситуация, мне этот объект будет нужен, если он нормально инитиализируется, а если нет то его нужно прибить...
А>
А>MyClass *g_cl = NULL;

А>void foo()
А>{
А>    BOOL bOK = FALSE;
А>    g_cl = new MyClass();
А>    __try
А>    {
А>        if(g_cl->IsError())
А>            __leave;
А>            ...
А>            ...
А>        bOK = TRUE;
А>    }
А>    __finally
А>    {
А>        if(!bOK)
А>        {
А>            delete cl;
А>        }
А>    }
А>}
А>


[/ccode]
std::auto_ptr<MyClass> g_cl;

void foo()
{
std::auto_ptr cl(new MyClass());
if(cl->IsError())
return;
...
...
g_cl = cl;

}

int main()
{
foo();
...
...
g_cl.reset(); // думаю, не стоит ему жить дольше main()
}

[/ccode]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.