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 sollte

    Das 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 Belang

    Im 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


  • Administrator

    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äre

    Ich 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);
    }
    

  • Administrator

    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. 🙂


Anmelden zum Antworten