Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Инициализация одного объекта для двух .cpp


Автор: GrAndrey 15.1.2004, 16:22
Простите, что так много спрашиваю и подобные глупые вопросы, но надо...

Я создал объект (инициализировал struct) в одном .cpp, но упоминать его приходится и в другом cpp файле.Поначалу компилятор жаловался, что не знает что это такое. Сделал во втором #include<[первый файл].cpp>, заработало. Но при этом как-то неправильно обращается к полям объекта, + предупреждения о двойном объявлении, хотя все другие инклуды из второго я убрал. Как здесь нужно правильно поступать?

Автор: Ars 15.1.2004, 16:39
Для глобальных объектов в других сpp объявляешь тот же объект, но с external:
Код
external struct CMyStruct MyStruct;

При этом определение CMyStruct должно быть видно

Автор: GrAndrey 15.1.2004, 16:53
Большое спасибо! Только, оказалось, extern. External, похоже, в Паскале.

Автор: Ars 15.1.2004, 16:55
Правильно, extern. С(п)лоховал маленько smile.gif

Автор: leniviy 10.2.2004, 13:46
у меня похожая проблема
надо один раз при запуске программы вызвать loadlibrary/getprocaddress для инициализации указателя, а в конце freelibrary
хочется, чтобы это делал какой-нибудь конструктор, но если я оформлю указатель на процедуру внутри класса, то теряется лаконичность кода:
вместо
Код
extproc(a,b,c);
получится
Код
struct1.extproc(a,b,c)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)