В этом варианте при возникновение исключения вызывается деструктор статического класса, но если я убираю строку "cout <<"XZ\n"<<endl;" (в ф-ии f1() ), то вызова этого деструктора не вижу.
#include "stdafx.h"
#include <iostream.h>
void f1();
class Ctest
{
public:
int iType; // 1- heap ; 2- stack
Ctest(int _iType): iType(_iType) { cout << "test "<<iType<< "\n"<<endl; }
~Ctest() { cout <<"~test "<<iType<< "\n"<<endl; }
};
int main(int argc, char* argv[])
{
try
//__try
{
printf("start __try\n");
f1(); // - âíåé áóäåò èñêëþ÷åíèå
printf("end __try\n");
}
catch(...)
//__except (EXCEPTION_EXECUTE_HANDLER)
{
printf("__except\n");
}
printf("end example\n");
return 0;
}
void f1()
{
Ctest Ct2(2);// 2- stack
//cout <<"XZ\n"<<endl;
DWORD dw=0;
dw = 5/dw;
DWORD *pdw=0; *pdw=1;
printf("end f1\n");
}