Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, 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]