Код: Выделить всё
globalClass foo; // global variable / object; give it a memory space to live
void doSomething( void )
{
foo.bar(); // use the global foo object
}
int main( int argc, const char *argv[] )
{
foo( argc ); // foo can only be instantiated in main as it's using
// information that's only available here
doSomething(); // use the global foo object
return 0;
}
Как мне этого добиться?
Единственное решение, которое я смог найти. состоит в том, чтобы сделать foo указателем на globalClass, но это приведет к разыменованию указателя каждый раз, когда я использую foo. Это может создать проблемы с производительностью при использовании в узком цикле...
PS: В реальной программе main и doSomething будут жить в разные файлы. И, конечно же, гарантировано, что к foo не будет доступа до того, как он будет создан.
Подробнее здесь: https://stackoverflow.com/questions/136 ... l-variable
Мобильная версия