Я опустил #include "stdafx.h
в каждом файле.
stdafx.h (предварительно скомпилированные заголовки)
#include a.h
#include b.h
class stuff;
stuff * s
хиджры
class thing{float f; void fun()};
a.cc
void thing::fun(){}
thing::thing():
f(b->f) {} // lnk 2005 linking error
b.h
struct stuff
{
float f;
thing * t;
};
b.cc
stuff::stuff(): f(3.4) { t = new thing; }
main.cc
int main()
{
s = new stuff;
s -> fun();
}
Как видите, я пытаюсь получить доступ к s
, который предварительно объявлен в stdafx.h
Я делаю этот дизайн, поэтому мне не нужно полагаться на синглтоны (у меня есть один основной класс, к которому я хочу получить доступ в других меньших объектах)
Нужно ли как-нибудь использовать ключевое слово extern
? Прекомпилированный заголовок вызывает проблему?