Статическая инициализация в C ++, смешанная с Objective-C - PullRequest
3 голосов
/ 18 ноября 2010

У меня есть игра для iPhone, порт от C ++ на других платформах. Таким образом, пользовательский интерфейс кодируется в Obj-C, но основная логика программы находится в нескольких файлах C ++. Некоторые из этих файлов C ++ имеют множество глобальных переменных с инициализаторами вверху.

Сюрприз! Отладка предполагает, что инициализация никогда не происходила. Как будто связь Obj-C не знает, чтобы вызывать цепочку статической инициализации C ++. Кто-нибудь знает, как это исправить? Как вручную вызвать эти процедуры инициализации?

Ken

1 Ответ

3 голосов
/ 20 ноября 2010

Статическая инициализация с глобальной переменной обычно считается вредной. Порядок инициализации зависит от реализации. Также это не очень хорошо работает с компиляторами Obj-C.

Используйте Построить при первом использовании Идиома .

Смотрите также этот сайт: http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.15

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...