Jak wprowadzić zmienną globalną, która dotyczyłaby kilku form?

0

W programie C++ Builder 6 tworzę Form1 i Form2, a tym samym tworzę zakładkę Unit1.cpp i Unit2.cpp. W zakładce Unit1.cpp definiuję zmienną globalną i przypisuję jej wartość.

int a=1;

W zakładce Unit2.cpp chcę zwiększyć wartość zmiennej a o 1 kodem:

a++;

Niestety kompilator krzyczy, że zmienna a dla Unit2.cpp jest niezdefiniowana. Jak zdefiniować zmienną globalną, którą bym mógł kontrolować na różnych Formach i Unitach?

1

Nie używaj zmiennych globalnych.

Zrób sobie jakiegoś singletona, czy coś...

Ale jak już zmienne globalne, to chyba extern jest potrzebne.

0

Zadziałało, dziękuję.

Na Unit1.cpp zdefiniowałem zmienną globalną i przypisałem jej wartość:

int a=1;

W zakładce Unit2.cpp zdefiniowałem zmienną globalną z rozszerzeniem extern:

extern int a;

W zakładce Unit2.cpp dodałem kod zwiększający zmienną a o 1:

a++;

Od tej chwili zmienna globalna a w zakładce Unit1.cpp została zwiększona o 1.

0
g_mode = 1; // note: this sets the global g_mode variable to 1.  It does not declare a local g_mode variable!

To jakiś żart? Przecież to nawet nie jest składniowo prawidłowa konstrukcja deklaracji zmiennej (w tym kontekście), więc jak można to przedstawiać jako argumentu przeciwko zmiennym globalnym?

1 użytkowników online, w tym zalogowanych: 0, gości: 1