Arrayzugriff zwischen 2 Klassen
-
Hallo,
ist es möglich, von einer Klasse auf ein global definiertes Array einer anderen Klasse zuzugreifen, ohne die Header-Datei dieser Klasse in der anderen Klasse zu includieren?
und falls ja, wie macht man das am einfachsten?danke schonmal,
daniel
-
auf ein global definiertes Array einer anderen Klasse zuzugreifen
wie kann ein array global definiert sein, wenn es in einer klasse ist?

-
also innerhalb der klasse global definiert. man kann quasi aus jeder funktion der klasse direkt darauf zugreifen
-
Ohne die header wird das schwer werden. Du kannst zwar nen prototypen verwenden, aber sobald du auf was zugreift brauchst die klassendefinition.
bsp:
// meine header // ich möchte dort keine #include "foo2.h" class Foo2; class Foo1 { void func(Foo2 *pFoo2); // funkt auch ohne include };// meine cpp // jetzt brauche ich die klassendefinition von Foo2 wenn ich darauf zugreigen will #include "Foo2.h" void Foo1::func(Foo2 *pFoo2) { pFoo2->myArray[0] = 0; }
-
hm, das problem ist, sobald ich die klasse includiere, meldet mein compiler den fehler, dass das Array (einer selbstdefinierten Klasse) mehrfach deklariert wird.
und wenn ich dich richtig verstanden habe, braucht man in der .cpp auf jeden fall eine include-anweisung? im prinzip will ich das aray ja nur auslesen und nicht weiter verändern.
-
zeig mal die definition dieser klasse/array
-
das ist der Anfang der headerdatei der ersten klasse PView mit array definition
#if !defined(AFX_PVIEW_H__F850E13F_8F75_47F2_9067_DB497EA1BBBF__INCLUDED_) #define AFX_PVIEW_H__F850E13F_8F75_47F2_9067_DB497EA1BBBF__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class results; #include "loesung.h" #include "array.h" //einbindung der array-dateien typedef Array<loesung> LOES; //Beschreibung des Arrays LOES loesarray; //deklaration des Arrays //jetzt folgen die deklaration der klasse und die einzelnen funktionenwenn ich in der 2.klasse PView.h einbinden möchte, kommt die fehlermeldung.
-
mach ein "static" vor "LOES loesarray;"
-
super, so scheints zu gehen.
vielen dank