Zugriff von einem Member auf ein anderes
-
Hi,
habe folgende Frage: Ich habe ein Klasse, die wieder Klassen enthält... ala
class Main { private: struct A a; class B b; };Main::b will nun auf Main::a zugreifen. Aber Main::a ist ja private, daher geht der Zugriff nicht. Ich könnte nun friend classes vereinbaren, aber das wird bei sehr vielen member-structs nervig.
Kann man auch vereinbare, dass in Main alle members aufeinenader zugreifen können? Sry für die Noob-Frage

Mfg,
voidpointer
-
versuchs halt ma mit "protected:"
-
pat94 schrieb:
versuchs halt ma mit "protected:"
Ähm ich seh' keine Vererbung.
@ Topic:
Was mir dazu einfällt, ist eine friend deklaration. Aber wie genau «kennt» dein a, b eingeltich die Main Klasse?
-
Bisher über einen parent-Zeiger, den jede Klasse hat. Vllt geht auch das einfacher?
-
Nichts was mir bekannt wäre
-
OK, hat jemand eine Antwort auf meine Frage?
-
voidpointer schrieb:
OK, hat jemand eine Antwort auf meine Frage?
friend schon versucht?
friend class A;
friend class B;in die class Main 'rein
-
Ich verstehe dein Problem noch nicht. Innerhalb der Klasse main kannst du doch problemlos auf a und b zugreifen. Wenn eine Memberfunktion von b auf ein a-Element zugreifen wills, musst du es halt übergeben.
Was genau willst du machen bzw. geht nicht?
-
In member function ‘virtual void B::read_from_file(FILE*)’: error: ‘A Main::a’ is privateLeider konnte ich da nicht drauf zu greifen.
friend class B;Das reicht zum Glück tatsächlich aus, wenn ich es in die Main-Klasse reinschreibe. Danke für die Lösung!