objekt benutzen welches in einer anderen klasse erstellt wurde.
-
hallo, ich hab mal wieder ein Verständnisproblem. Ich mach ein beispiel aus dem Kopf weil es wirklich um das Verständnis geht.
Ja die Klassen sin natürlich jeweils in den enzelnen header und cpp dateien.
// classA.h Class A { string irgendwas; void setIrgendwas(string in) { irgendwas = in; }; string getIrgendwas() { retrun irgendwas; } } // classB.h #include "classA.h" Class B { A ObjA; ObjA.setIrgendwas("blablaba"); } //classC.h Class C { // hier würde ich jetzt gern in einer funktion etwas mit ObjA.getIrgendwas machen. ich kann ja nicht einfach ein objekt von B erstellen weil das wird nochmal woanderst erstellt, }
-
Kannst du deinen Code bitte kopieren? Da steht Class statt
classund retrun stattreturn, dazu steht ein Statement direkt in der Definition der Klasse B.
Dazu auch mal das hier durchlesen.
-
ne kann ich nicht weil es sau viel code ist und es nur um die verständniss geht....
-
Dann gibst C halt eine Referenz auf B als member.
-
man muss dazu sagen es geht bissle um mfc, also ich hab jetzt nicht die eine main wo ich dann rum hantieren kann...
aber in a gibt es eben diese membervariable die in b gesetzt wird und ich will jetzt in c auf den member von a zugreifen... ich weiß nciht wie ich das mit der referenz machen soll weil c kennt ja das objekt von a nicht..
-
#include <iostream> class foo_t { private: int a; public: void set_a( int value ) { a = value; } int get_a() const { return a; } }; class bar_t { private: foo_t foo; public: bar_t() { foo.set_a( 42 ); } foo_t const& get_foo() const { return foo; } }; class baz_t { private: foo_t const &foo; public: baz_t( bar_t const &bar ) : foo( bar.get_foo() ) {} void mach_irgendwas() { std::cout << foo.get_a(); } }; int main() { bar_t bar; baz_t baz( bar ); baz.mach_irgendwas(); }