Witam!
Ma kilka plików cpp ( A.cpp , B.cpp, Obraz.h i Obraz.cpp ...)
Wszystkie pliki korzystają z obiektów własnej klasy OBRAZ
Wpadłem na pomysł, by zamiast includować plik Obraz.h ( z deklarcją klasy OBRAZ)
stworzyć globalne obiekty OBRAZ:
// *** Plik A.cpp ***
#include Obraz.h // zawiera klasę Obraz
extern void KonfigurujObraz(); // Jej def. jest w B.cpp
int const iRozmiar = 5;
Obraz *pObr[ iRozmiar ]; // tworzę globalny wsk do tablicy własnych obiektów OBRAZ
int main()
{
for( int i = 0; i< iRozmiar ; i++) pObr[i] = new Obraz; // alokuje na stercie
KonfigurujObraz(); // funkcja w pliku B.cpp utworzy nowe obiekty na stercie
}
// *** Plik B.cpp ***
extern int const iRozmiar ; // jej def. jest w a.cpp
extern Obraz **ppObr; // To ma być globalny wsk do tablicy OBIEKTÓW , a nie jest !
void KonfigurujObraz();
{
.... // ustawiam różne zmiennne
for( int i = 0; i< iRozmiar ; i++) ppObr[i] = new Obraz (int, int, TCHAR*, TCHAR*); // alokuje na stercie
}
I okazuje się , że zmienna wskaźnikowa &pObr[i] w A.cpp i &ppObr[i] w B.cpp nie są tymi samymi zmiennymi.
1 .Czy wskaźniki do obiektów zadeklarowane w przestrzeni globalnej są statyczne ( wiązane wewnętrznie)?
2. Czy mogę im nadać cechę wiązanie zewnętrznego ?
3. Cz jest to niewłaściwe podejście i należy includować plik Obraz.h ( z deklarcją klasy OBRAZ)