Objektreferenz übergeben



  • Hi! Ich brauch Hilfe!
    Ich möchte gerne einem Konstruktor eine Referenz auf ein
    Objekt übergeben. Ich hab jetzt schon die ganze Zeit probiert,
    aber ich brings nicht zusammen. Ich hab ein totales Blackout.

    Also so in etwa schaut es aus:

    Klasse Device

    Device::Device (Port *port)
    {
      this->port = port;
      Encoder *enc = new Encoder (port);
    }
    

    Klasse Encoder

    Encoder::Encoder (Port *port)
    {
      this->port = port;
    }
    

    Im Konstruktor Device erzeug ich ein Encoder Objekt, und diesem Konstruktor
    möchte ich eine Referenz auf port übergeben.
    Bitte helft mir. Danke schon mal.



  • Und das Problem ist? Du weisst nicht wie man die Referenzen initialisiert, im Gegensatz zu Zeigern?



  • Wenn ich die Methode Open() von Port aufrufe, müsste der Port
    offen sein. In der Klasse Encoder ist der Port aber noch geschlossen,
    obwohl ich ja eine Referenz übergeben habe??

    mfg



  • fritze schrieb:

    Im Konstruktor Device erzeug ich ein Encoder Objekt, und diesem Konstruktor
    möchte ich eine Referenz auf port übergeben.
    Bitte helft mir. Danke schon mal.

    Dann solltest du auch wirklich das machen was du da beschreibst. 😕

    Encoder::Encoder (Port *port)
    

    =>

    Encoder::Encoder (Port& port)
    




  • fritze schrieb:

    Wenn ich die Methode Open() von Port aufrufe, müsste der Port
    offen sein. In der Klasse Encoder ist der Port aber noch geschlossen,
    obwohl ich ja eine Referenz übergeben habe??

    mfg

    Um das zu beurteilen, müssten wir noch mehr sehen von Deinem Code.
    Wie ist z.B. Device::port definiert ? als "Port"/"Port&"/"Port*"/ ???

    Gruß,

    Simon2.



  • Hab jetzt den Fehler entdeckt. Ich hab nur ein Problem
    mit der Schnittstelle gehabt.
    Aber trotzdem danke für eure Bemühungen.
    mfg


Anmelden zum Antworten