von class auf class zugreifen
-
Hallo,
ich habe 2 classen und möchte auf daten der anderen direkt zugreifen, sowohl lesen als auch schreiben.
class blabla : public andereclass // so nicht da schon so arbeite und nur einen wert brauch von der andere classe
friend class andereclasse; // diese definition in der 2. classe bringt mich auch nicht weiter
kann einer nen kurzen quelltext posten wie das geht?
-
Du hast...
[ ] ... eine genaue, korrekte Beschreibung deines Problems gepostet, so dass jeder in der Lage ist, es zu verstehen und dir zu helfen. [X] ... ein paar nichtssagende verstümmelte Sätze gepostet, deren Sinn kein menschliches Wesen ohne gegebenen Zusammenhang erfassen kann.
-
mietze schrieb:
Hallo,
ich habe 2 classen und möchte auf daten der anderen direkt zugreifen, sowohl lesen als auch schreiben.
...
kann einer nen kurzen quelltext posten wie das geht?Die Sätze habe ich verstanden und dazu kann ich dir folgendes geben:
class Bar; class Foo{ friend class Bar; public: Foo():i(0){}; void zugriff(Bar bar); private: int i; }; class Bar{ friend class Foo; public: Bar():f(0.0){} void zugriff(Foo foo); private: float f; }; void Foo::zugriff(Bar bar){ std::cout<<"altes bar.f= "<<bar.f<<std::endl; bar.f++; std::cout<<"neues bar.f= "<<bar.f<<std::endl; } void Bar::zugriff(Foo foo){ std::cout<<"altes foo.i= "<<foo.i<<std::endl; foo.i++; std::cout<<"neues foo.i= "<<foo.i<<std::endl; } int main(){ Foo foo; Bar bar; foo.zugriff(bar); bar.zugriff(foo); return 0; }
Gruß
Entyl Sa
-
sorry, ich war praktisch aufn sprung und habe mal so labida was in 40s zusammengeschrieben.
Entyl_Sa hat ja scheinbar trotzdem herrausgefunden was ich meinte.
nur ich komme mit dem code nicht ganz klarvoid zugriff(Foo foo);
error C2259: "Foo" : Instanz von abstrakter Klasse kann aufgrund nachfolgender Elemente nicht erstellt werden
und über
int main(){ Foo foo; Bar bar; foo.zugriff(bar); bar.zugriff(foo); return 0; }
möchte ich nicht gehen ..
ich habe praktisch eine class Application wo fenster breite/höhe, position, tastatur und lauter son kram drin steht.
und dann ganz viele classen die alle was anderes machen, aber die informationen über tastatur und maus ereignisse benötigen.Grundgerüst:
class Application { public: Application() { } ~Application() {}; protected: Keys m_Keys; // Class die Tastatur Eingaben speichert Mouse m_Mouse; // Class die Mouse Ereignisse speichert };
und dann diese Klasse:
class GUI_Edit : public GUI_Element { private: void OnDestroy(); public: friend class Application; Font e_Font; // Font Class // Konstruktor GUI_Edit() { } // Dekonstruktor ~GUI_Edit() { OnDestroy(); } void Show(); };
und da drin möchte ich auf m_Keys und m_Mouse class aus Application class zugreifen können.
-
boah es hat geklappt .. *staun*
danke für deine hilfe
-
Nur mal so als Designfrage, sollten Mouse und Keys nicht public lesbar sein?
Ich meine schließlich sind Keyboard und Mouse ja Hardware die von allen Klassen geteilt werden müssen.