2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Глобальные переменные в оконных приложениях
Сообщение15.12.2010, 23:18 
Аватара пользователя


30/05/09
121
Киев
Всем привет! Кто-нибудь, знает как объявлять глобальные переменные при создании оконных приложений в С++ Builder? Т.е. пусть имеются формы Form1, Form2, и из под одного указателя можно получить доступ к другой форме. Headers и sources соответственно: Unit1.h, Unit1.cpp, etc.
Пусть double gdVar = 3.0; //global double variance - глобальная переменная (т.е. одна на две формы). Вопрос: где именно её объявлять? Делаю обычный файл file1.h:
#ifndef FILE1H
#define FILE1H

double d=3.0;
#endif

И подключаю этот файл в .cpp файлы и... для каждой формы переменная gdVar своя несмотря на меры условной компиляции, которая явно указывает, что объявление должно происходить один, и только один раз. Что делать?

 Профиль  
                  
 
 Re: Глобальные переменные в оконных приложениях
Сообщение16.12.2010, 00:35 
Заслуженный участник


09/08/09
3438
С.Петербург
Ваши меры условной компиляции "указывают", что в каждом исходном файле, включающем file1.h, глобальная переменная gdVar будет объявлена один раз.

Обычно в подобных случаях поступают следующим образом:
1. file1.h:
Код:
#ifndef FILE1H
#define FILE1H

extern double gdVar;
#endif
2. В каком нибудь одном .cpp-файле:
Код:
#include "file1.h"
...
double gdVar = 3;

 Профиль  
                  
 
 Re: Глобальные переменные в оконных приложениях
Сообщение16.12.2010, 08:04 
Аватара пользователя


30/05/09
121
Киев
Применил такую схему:
В файле Unit1.cpp

#include "Unit1.h"
#include "Unit2.h"
#include "File1.h"
...
double gdVar = 1.0;
...

В файле Unit2.cpp:
#include "Unit2.h"
#include "Unit1.h"
...
В общем в Unit2.cpp переменная gdVar не видна.

 Профиль  
                  
 
 Re: Глобальные переменные в оконных приложениях
Сообщение16.12.2010, 18:23 
Аватара пользователя


30/05/09
121
Киев
У меня было прозрение, когда прочитал форум с точно такой же темой
topic18004.html

В выше приведено коде, в файле Unit2.cpp забыл подключить file1.h. Всё просто супер!!!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group