extern w pliku .h, używanie jednej zmiennej w 2 plikach .cpp
Ostatnio zmodyfikowano 2014-08-31 15:56
fokusx Temat założony przez niniejszego użytkownika |
extern w pliku .h, używanie jednej zmiennej w 2 plikach .cpp » 2014-08-30 23:33:05 Plik header.h class test { int c; ... };
extern test Ztest;
Plik plik1.cpp #include "header.h"
void func1() { Ztest.c = 76; }
Plik plik2.cpp #include "header.h"
void func2() { Ztest.c++ }
Jak pokazałem w przykładzie chcę używać zmienną Ztest w kilku plikach .cpp Niestety po zastosowaniu tej metody, plik plik2.cpp nie widzi zmiennej Ztest. A może w ten sposób kontrolować zmienną Ztest: Do obu plików .cpp dodaje nowe zmienne np. ...
void func1() { static test * external_Ztest = & Ztest; external_Ztest->c = 76; }
Czy dzięki dodaniu tej zmiennej uzyskam to co chcę uzyskać? Jak nie to co zrobić? |
|
Parapet |
» 2014-08-31 08:53:12 Poczytaj o przyjaźniach w klasie. |
|
pekfos |
» 2014-08-31 11:57:27 c jest prywatne, a Ztest niezdefiniowane. |
|
fokusx Temat założony przez niniejszego użytkownika |
» 2014-08-31 14:49:37 class test { int c; friend void func2( test & ); friend void func1( test & ); }
i np. teraz w func1 przypisze c liczbę 123; i następnie func2 będzie chciało odczytać tą liczbę, to pokaże mi 123; czy nic? Idąc dalej, utworzę dodatkowo obiekt test zrest; i żadnej liczby nie zapisze, będzie tam siedziała liczba 123, czy null? |
|
pekfos |
» 2014-08-31 14:55:52 test zrest; i żadnej liczby nie zapisze, będzie tam siedziała liczba 123, czy null? |
Wartość nieokreślona. |
|
fokusx Temat założony przez niniejszego użytkownika |
» 2014-08-31 15:23:56 a co do pierwszej części pytania? |
|
pekfos |
» 2014-08-31 15:35:43 Podaj konkretny kod, jak chcesz mieć konkretne odpowiedzi na temat jego działania, jeśli samo działanie nie będzie zbyt wymowne.. |
|
fokusx Temat założony przez niniejszego użytkownika |
» 2014-08-31 15:50:07 plik header.h class test { public: int a; friend void func1( test & ); friend void func2( test & ); };
plik plik1.cpp #include "header.h"
void func1( test & ex_test ) { ex_test->a = 123; }
plik plik2.cpp #include "header.h"
void func2( test & ext_test ) { printf( "%i", ex_test->a ); }
Co wyświetli printf("%i", ex_test->a); w func2(); jeśli pierwsza zostanie wykonana funkcja func2, potem func1 i znów func2? NIC -> 123? |
|
« 1 » 2 |