Pages

Tuesday, July 28, 2009

"Странное" программирование

Вот такая "пустая" программа (ни одной строчки в функции main):

#include <iostream>
using namespace std;

struct Strange
{
Strange()
{
cout << "Hello" << endl;
}

~Strange()
{
cout << "Bye" << endl;
}

} tagStrange;

int main()
{
return 0;
}


а работает:

Все знают, что глобальные объекты создаются во время загрузки программы. Всем привычно видеть что-то такое:

#include <iostream>
using namespace std;
int x = 5;
int main()
{
cout << x << endl;
return 0;
}


Но не все знают и о трюке, что я показал. Можно же в конструктор и деструктор более важные вещи поставить. Например, CoInitialize(NULL) и CoUninitialize().

No comments:

Post a Comment