vector als REferenz übergeben, so dass Original bearbeitet wird



  • Ich habe folgendes Problem:

    Eine Liste von vectoren innerhalb einer weiteren Liste:

    widgetVariationList->setVariationList(CouplerList[row].VariationList);
    

    die ich zum Bearbeiten an eine weitere Klasse übergebe

    void widgetCouplerVariationList::setVariationList(vector<GratingShapeListDef> & List)
    {
    	VariationList = List;
    }
    

    Dort kann die Liste bearbeitet werden. Dabei soll aber eigentlich die Originalliste, also

    CouplerList[row].VariationList
    

    bearbeitet werden.

    So wie ich es gemacht habe funktioniert das offensichtlich nicht. Wie muss ich es dann anders machen?

    Matthias



  • void widgetCouplerVariationList::setVariationList(vector<GratingShapeListDef> & List) 
    { 
        VariationList = List; 
    }
    

    Was ist der Typ von VariationList?
    SImon



  • simon.gysi schrieb:

    [cpp]void
    Was ist der Typ von VariationList?
    SImon

    [cpp]
    vector<GratingShapeListDef> VariationList;
    [/cpp]



  • Dann wird bei der Zuweisung eine neue Instanz erzeugt.
    Benutze Pointer.

    widgetVariationList->setVariationList(&(CouplerList[row].VariationList));
    
    void widgetCouplerVariationList::setVariationList(vector<GratingShapeListDef>* List) 
    { 
        VariationList = List; 
    }
    
    vector<GratingShapeListDef>* VariationList;
    

Anmelden zum Antworten