Methode aus einem struct in eine Klasse.... :D



  • Hallo

    hmm jetzt setz mal bitte das 'fInit' aus der Klasse auf 'fInit' aus dem Methodenparam

    😕 Versteh ich nicht.

    Mein Code ansich läuft.

    Allerdings hast du hier noch einen Fehler

    struct IPlayback
            {
             ...
            } IPlayback;
    

    Das zweite IPlayback must du weglassen.

    bis bald
    akari



  • struct IPlaybackData
            {
                bool         fPaused;    // Wiedergabe pausiert ?? <<<<<<<<<<<DAS_HIER!!!!!!!!
                bool         fInit;        // Mediendatei geladen ?
                bool         fMute;        // Lautstärke gemutet ?
                unsigned int uiVol;        // Lautstärke Wert
                bool         fRepeat;    // Wiederholen (Repeat-Mode)?           
                ERepeatModes rpRepMode;    // Wiederholungsmodus (RPM-ENUM)
    
            } IPlaybackData;
    

    setz mal das markierte element (fPaused) auf den Parameter den ich den Methode (fPause) übergeben...(sry hab mich grad vertippt^^) ...Oder anders: Implementier mal die Methode vollständig 😉 ...das hab ich nämlich nit hinbekommen 😞

    ALSO:

    void CAppData::IPlayback::SetPaused(bool fPause)
    {
    // hier fehlt ja noch was...das funzt bei mir nie ...
    // ''(this)'fPaused' = fPause;
    }
    


  • Hallo

    SetPaused(bool fPause) ist ein Element von IPlayback, fPaused hingegen gehört zu IPlaybackData. Da es zwischen diesen beiden Definitionen keine Verbindung gibt kannst du auch von dem einem zu dem andern keine Übergabe machen.

    Und ich sag nochmal das so eine Definition entweder überflüssig oder falsch ist!

    struct IPlayback
    {
    ...
    } IPlayback;
    

    bis bald
    akari



  • akari schrieb:

    Hallo

    SetPaused(bool fPause) ist ein Element von IPlayback, fPaused hingegen gehört zu IPlaybackData. Da es zwischen diesen beiden Definitionen keine Verbindung gibt kannst du auch von dem einem zu dem andern keine Übergabe machen.

    Und ich sag nochmal das so eine Definition entweder überflüssig oder falsch ist!

    struct IPlayback
    {
    ...
    } IPlayback;
    

    bis bald
    akari

    jaja den Bug hab ich ja gecheckt...also gibbet das keine Möglichkeit auf die Daten zuzugreifen bzw. diese zu verändern ?



  • Hallo

    IPlayback bräuchte eine Referenz auf IPlaybackData, dann könntest du von IPlayback aus die Daten von IPlaybackData ändern.

    Allerdings halte ich die Unterteilung eh für Unsinn (genau aus diesem Grund). Attribute und die dazugehörigen Getter/Setter sollten in einer gemeinsamen Klasse sein.

    bis bald
    akari



  • Ok, verstehe ...dann nochmal vielen Dank! 👍


  • Mod

    akari schrieb:

    Und ich sag nochmal das so eine Definition entweder überflüssig oder falsch ist!

    struct IPlayback
    {
    ...
    } IPlayback;
    

    es ist nicht falsch, allerdings in meinen augen schlechter stil. es ist in C++ legal, einen namen im selben scope für einen klassen- oder enum-namen zu verwenden, als auch für ein objekt, eine funktion oder eine aufzählungskonstante. hier wird also ein struct mit IPlayback definiert und dann ein member vom typ IPlayback mit dem namen IPlayback deklariert. der name der membervariable verdeckt anschließend den namen des typs.



  • der name der membervariable verdeckt anschließend den namen des typs.

    jo so isses...

    Aber ne Lösung für mein Problem -oben beschrieben- hast du auch nicht oder ?


  • Mod

    Sturkurklasse schrieb:

    der name der membervariable verdeckt anschließend den namen des typs.

    jo so isses...

    Aber ne Lösung für mein Problem -oben beschrieben- hast du auch nicht oder ?

    mach IPlaybackData member von IPlayback - das ist nur logisch.



  • dann meckert er wg. neu definition...aber danke :p


Anmelden zum Antworten