Главная / FAQ по Builder'у / 51 Я объявил переменную в...

51 Я объявил переменную в Unit2.cpp, как мне предоставить к ней доступ в Unit1.cpp?


Есть два решения :
Первое решение:
в h-файле только сделать объявление
extern const int n;
extern double X[];
extern double Y[];
В cpp-файле проининциализировать
 const int n = 10;
 double X[n] = {200,212,211,212,203,194,194,188,196,190};
 double Y[n] = {49,  40, 41, 46, 52, 59, 53, 61, 55, 64};
Второе решение ( нестандартное, но изящное) позволяет инициализировать прямо в h-файле:
Для этого используем расширения Builder. Все оставляешь как есть, но добавляешь extern и __declspec(selectany)
extern const __declspec(selectany) int n = 10;
extern __declspec(selectany) double X[n] =
{200,212,211,212,203,194,194,188,196,190};
extern __declspec(selectany) double Y[n] = {49,  40, 41, 46, 52, 59, 53, 61,
55, 64};
И последнее: использование глобальных переменных в С++ не одобряется.Если есть необходимость их использования, лучше обернуть их в класс(паттерн Singlenton)
Вячеслав Ермолаев

Предыдущий вопрос   |  Список вопросов   |   Следующий вопрос

источник      На главную      by jenyok
Copyright © 2003 JTSOFT
Сайт управляется системой uCoz