CList* pFile und keine Ahnung



  • Hallo,

    ich bin leider ein absoluter Anfänger im Umgang mit VC++
    und möchte lediglich kleine Änderungen an einem vorhandenen
    Source Code vornehmen. Darum hoffe ich das mir dabei evtl.
    Jemand ein wenig helfen kann.

    Es geht dabei um folgenden Code:

    for ( ... )
    {
      CLibrary* pFile = (CLibrary*)pFiles;
      if ( Add( pFile, nHit ) ) nHit ++;
    
    }
    

    Wirklich verstanden hab ich den Code leider nicht,
    aber ich denke das pFile ein Pointer
    auf einen Inhalt von pFiles representiert
    und pFiles ist wiederum eine Liste mit
    Pointern auf CLibrary.

    Nunja, auch auf die Gefahr hin das ich mich nun
    komplett irre, denke ich das pFile auf
    Elemente eines Eintrages aus CLibrary zeigt.
    Diese Elemente lassen sich über folgenden Code verändern.
    (hab ich getestet und funktioniert)

    pFile->sElement = "newEntry";
    

    Allerdings hat dieser Aufruf eine direkte
    Änderung in CLibrary zur Folge - und genau
    das möchte ich verhindern.

    Ich würde gerne irgendwie eine abgeänderte
    Kopie von pFile bzw. dessen Inhalte an die
    Methode Add( pFile, .. ); übergeben ohne
    dabei die Inhalte von CLibrary zu verändern.

    Leider weiß ich nicht wie und ich hoffe Ihr
    könnt mir dabei helfen :).

    Mit Freundlichen Grüßen



  • Falls ich dich richtig verstanden habe:

    CLibrary* pSavFile = new CLibrary;
    *pSavFile = *pFile;
    

    Dann haste ne "Sicherungskopie" von pFile in pSavFile;



  • hallo 🙂

    danke für die antwort, leider funktioniert das
    nicht so ganz, der kompiler meldet das
    pSavFile ein nicht deklarierter bezeichner ist.
    selbst wenn das klappen würde, wäre doch pSavFile
    selbst auch nur eine kopie des pointers, jede
    änderung (pSavFile->sElement = "test") würden
    dann auch änderungen an CLibrary zur folge haben,
    genau das möchte ich ja verhindern.

    hast du vielleicht noch eine andere idee?

    ich denke das vielleicht eine temporäre variante
    von CLibrary nötig wäre die nur die einträge
    aus der liste pFiles enthält, sicher bin ich
    mir dabei allerdings nicht

    MfG


Anmelden zum Antworten