• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak zdefiniować zmienną o zasięgu kilku plików ?

Mały hosting, OGROMNE możliwości
0 głosów
577 wizyt
pytanie zadane 13 sierpnia 2016 w C i C++ przez konrad99 Gaduła (4,090 p.)
Jak zdefiniować zmienną o zasięgu kilku plików ?
komentarz 13 sierpnia 2016 przez KubenQPL Maniak (62,840 p.)
Spróbuj ze zmienną const potem tylko odwołujesz się Klasa.ZMIENNA

3 odpowiedzi

+2 głosów
odpowiedź 13 sierpnia 2016 przez criss Mędrzec (172,570 p.)
wybrane 14 sierpnia 2016 przez konrad99
 
Najlepsza

W pliku *.h zapisz: 

extern Typ name;

Obowiazkowo include guardy / #pragma once ofc

W pliku *.cpp 

#include "nazwa_pliku.h"

Typ name = ...;

 

+2 głosów
odpowiedź 13 sierpnia 2016 przez fenq80 Bywalec (2,940 p.)
edycja 13 sierpnia 2016 przez fenq80
Możesz użyć słowa kluczowego extern. Tutaj znajdziesz. http://4programmers.net/C/Extern
komentarz 13 sierpnia 2016 przez Avernis Nałogowiec (27,400 p.)
Można też po prostu użyć zmiennej z zmiennymi statycznymi
komentarz 13 sierpnia 2016 przez fenq80 Bywalec (2,940 p.)
"Zmiennej ze zmiennymi statycznymi" przepraszam ale nie dokonca rozumiem. Mógłbyś wytłumaczyć to stwierdzenie?
komentarz 13 sierpnia 2016 przez Patrycjerz Mędrzec (192,320 p.)

Avernis, zmienna globalna zadeklarowana w jednym module nie będzie widoczna w drugim - w takiej sytuacji należy użyć extern. Bez tego zapchasz przestrzeń nazw.

komentarz 13 sierpnia 2016 przez Avernis Nałogowiec (27,400 p.)
U mnie działa
komentarz 13 sierpnia 2016 przez criss Mędrzec (172,570 p.)
Myśle, ze chodzi mu o klase ze statycznym polem.
komentarz 13 sierpnia 2016 przez Avernis Nałogowiec (27,400 p.)

Chodzi mi o coś takiego:

struct Slots
{
    Slots();
    static int zmienna;
};

Potem w pliku cpp int Slots::zmienna = 1;

 

komentarz 13 sierpnia 2016 przez criss Mędrzec (172,570 p.)
Tak wlasnie myslalem, ale lepiej już w takim wypadku zrobić prywatny konstrktor albo = delete

Poza tym.. skoro jest na to sposób z wykorzystaniem słowa extern, to nie ma sensu kombinować w ten sposób...
komentarz 14 sierpnia 2016 przez fenq80 Bywalec (2,940 p.)
A o to chodziło. Według mnie to niepotrzebnie tak kombinujesz. Ale jak dzialadziała...
+1 głos
odpowiedź 13 sierpnia 2016 przez Ehlert Ekspert (215,210 p.)
Tworzysz plik h z deklaracją zmiennej. Potem go includujesz.

Podobne pytania

+1 głos
4 odpowiedzi 957 wizyt
pytanie zadane 26 grudnia 2018 w C i C++ przez donekdzwonek Początkujący (420 p.)
0 głosów
1 odpowiedź 281 wizyt
pytanie zadane 22 lutego 2020 w Algorytmy przez majfirst Obywatel (1,200 p.)
0 głosów
2 odpowiedzi 1,613 wizyt

93,717 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,261 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...