Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Глобальные переменные(объекты) классов


Автор: Array 3.11.2005, 04:25
Возникла проблема с глобальными переменными классов.В Unit1.h объявлен
класс AСlass.В Unit1.cpp объявляется переменная AСlass VR;, в Unit1.h
extern AСlass VR;. Эту переменную надо использовать в других модулях.
Поэтому объявляю в
Unit2.h:extern AСlass VR;
Unit3.h:extern AСlass VR;
............................
и т.д.
Но не компилирует."Declaration syntax error" во все хедерах.
Причем попробовал сделать это с простой переменной int( extern int A) всё нормально. И компилируется,и переменная во всех модулях видна. Получается
для объектов так не делается. Но простое включение хедера (через #include)
не дает видимости классовой переменной в других модулях(то есть значение
её не меняется).
Может кто поможет разобраться? Заранее спасибо.

Автор: _hunter 3.11.2005, 11:36
ничего не понял... ты хочеш расшарить член класса?
тогда шарь класс. и получай его члены...

Автор: Dubinsky 3.11.2005, 14:28
да нет , он наверное создаёт глобальную переменную своего класса а она не видна в других юнитах , а в Юнит2-3 стоит #include "Unit1.h" ?

Автор: Array 4.11.2005, 21:30
Dubinsky Да, все правильно. В этом и проблема.

Автор: bel_nikita 4.11.2005, 21:50
Вставть в Unit2.h и в Unit3.h первой строчкой: #include "Unit1.h"

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