Auf Variable über der Klasse zugreifen?
-
Hi,
ich hab folgendes Problem, ich habe folgende Klassen: [ schematisch ]
class foo
{
int foofunction()
{
// hier soll zugriff auf eine Variable der Klasse bar erfolgen //
}
};class bar
{
int var;
foo Unterklasse;
}So, also ich erstelle eine Instanz der Foo-Klasse in der Bar Klasse, so dürfte die Foo-Klasse doch irgendwie auf die Variable der bar Klasse zugreifen können, oder? Nur wie?
-
du musst der methoden eine referenz auf ein bar-objekt uebergeben,
oder foo als innere klasse von bar definieren.
-
entelechie schrieb:
oder foo als innere klasse von bar definieren.
Gibts da ein Schlüsselwort für oder muss ich dann halt die ganze Deklaration in die Klasse schreiben? Könnten ein paar Klassen mehr werden...
-
entelechie schrieb:
oder foo als innere klasse von bar definieren.
Das funktioniert auch nicht.
-
class Outer; class Inner { public: Inner(Outer& outer) : outer_(outer) {} private: Outer& outer_; }; class Outer { public: Outer() : inner_(*this) {} private: Inner inner_; };
mfg
-
Was heißt diese Zeile:
Inner(Outer& outer) : outer_(outer) {}
-
Inner(Outer& outer) : outer_(outer) {}
Ist halt der Constructor outer_ wird mit outer initiallisiert... OK die Namen sind scheiße.
-
class Foo1 { private: int m_var; public: Foo1(): m_var(0) {} void set_var(int set_var) { m_var = set_var; } }; class Foo2 { private: Foo1 *ptr_Foo1; public: Foo2(Foo1 &ptr_a): ptr_Foo1(&ptr_a) {} // speichere die Adresse des Objekts void set_value(int value) { ptr_Foo1->set_var(value); } }; int main() { Foo1 *f1 = new Foo1(); Foo2 *f2 = new Foo2(*f1); f2->set_value(12); delete f1; delete f2; }