Bitte durch treffenden Titel ersetzen, kanns nur beschreiben
-
vorwärtdeklaration hab ich eh schon,
nur die klasse B stammt nicht aus meiner Feder, so dass ich die eigentlich nicht bearbeiten kann oder besser sollteDas wäre eigentlich nur der letzte ausweg
dieses beispiel mit a und b ist natürlich nicht der realität entsprechend, also ich hab der einfachkeit halber mal alles als public geschrieben
-
bevor jetzt noch solche meldungen kommen:
NICHT auf den inhalt von a und b achten ^^Diese Klassen gibt es so nicht
Nur habe ich versucht das Problem der Kommunikation so deutlich wie möglich zu machen, auch der Inhalt der Funktionen ist nicht von BelangIm realen Projekt sind Include_Guards und Konstruktoren definiert, alles kein Problem ^^
-
Habe ich deine Frage etwa falsch verstanden?
-
nein, deine antwort ist in etwa das was ich erwartet habe ( nur dass ich lieber zeiger statt referenzen verwende^^)
Auch die Funktionsnamen wie init sind frei erfunden.
Gibts ausser dieser Möglichkeit noch irgendeine wobei ich B nicht verändern müsste?
@ Drakon:
Ich will nur sicherstellen dass ich in diesem Thread nicht nach meiner Antwort suchen muss weil 200 Seiten Fehler am Beispiel bemängelt werden
wie Sourcecode aufteile, Include_Guards, hey Klasse B ist nicht mit Semikolon beendet^^@ Dravere:
ist nicht böse gemeint du hast ja recht, ich hätte vlt gleich schreiben sollen dass das nur ein Beispiel ist um das Problem mit minimalem Kontext widerzugeben
-
Ich verstehe nur Bahnhof. Das sollte keine Korrektur darstellen, sondern die Lösung. Was ist denn dann deine Frage? Oder was ist das Problem?

Grüssli
-
Er will, dass A ein Objekt hält, dieses gehaltene Objekt aber eine Funktion von A aufrufen soll. Das geht, indem man eine Referenz an das B Objekt mitgibt.
-
ok, das Problem ist sogut wie gelöst, nur hab ich noch ein kleines Problem,
für eine weitere Vorwärtsdeklaration brauch ich eine Klasse die im Namespace ns steckt.namespace ns { class C { tolle Sachen ... }; }Das ist jetzt eig mehr als peinlich, aber ich bin grad fix und fertig
wie drücke ich aus dass die Klasse im namespace ist?!
ich habe bisher:
class C; class D { wiederWasLustiges(C* caller); }Verständlicherweise?! regt er sich nun auf dass er keinen Prototyp für
wiederWasLustiges(ns::C* caller)
findet.
schreibe ich aber vor class C noch
namespace ns,
so regt er sich auf dass ns kein namespace wäreIch möchte aber unter gar keinen Umständen
die Headerdatei mit der Klasse C und dem Namespace im Header von D inkludieren.Wenn ich das hinter mir habe hör ich für heute auf ^^
-
namespace ns { class C; } class D { wiederWasLustiges(C* caller); }
-
drakon schrieb:
Er will, dass A ein Objekt hält, dieses gehaltene Objekt aber eine Funktion von A aufrufen soll. Das geht, indem man eine Referenz an das B Objekt mitgibt.
Ehm, ok. Ich hatte heute Nachmittag keinen Kaffee, vielleicht liegt es daran, dass ich das nicht begriffen habe

@shisha,
Mit dem letzten Beitrag von drakon sollte jetzt alles geklärt sein, oder?Grüssli
-
Dravere schrieb:
drakon schrieb:
Er will, dass A ein Objekt hält, dieses gehaltene Objekt aber eine Funktion von A aufrufen soll. Das geht, indem man eine Referenz an das B Objekt mitgibt.
Ehm, ok. Ich hatte heute Nachmittag keinen Kaffee, vielleicht liegt es daran, dass ich das nicht begriffen habe

Ich dachte, wegen deinem Post, dass ich etwas falsch verstanden hatte, da du überhaupt nichts in der Art, wie ich hattest.
