2010-11-22 8 views
0
void Record::Update() { 

string choice; 

cout << "Enter ID: " << endl; 
cin >> IDValue; 
    for(Itr = List.begin() ; Itr !=List.end() ; Itr+) { 
    if(Itr->GetID() == IDValue) 
    { 
    cout << Transit->GetID() << endl; 
    cout << "Would you like to set Name ? (y/n) :"; 
    cin >> choice; 
    if (choice == 'y') 
     cin >> strName; 
    Itr->SetName(strName); 

    cout << Itr->GetName() << endl; 
    cout << Itr->GetLocation() << endl; 
    } 

    } 
} 

Diese Funktion findet einen Datensatz anhand ihrer eindeutigen ID-Nummer. Jeder neue Datensatz erhält eine ID-Nummer. Wenn ich ID 2 eingebe, zeigt die Funktion den Datensatz mit ID 2 an. Wie kann ich eines der Attribute des Datensatzes ändern? In diesem Fall die Position von ihm.Aktualisierungswert in Vektor

+2

Wer weiß. Welche Art von Objekt ist in diesem Container gespeichert und ermöglicht es Ihnen, den Speicherort zu ändern? –

+0

Haben Sie Mutator-Methoden? Funktioniert 'Transit-> SetID (9)? –

+0

Ich hasse es, wenn Sie jedes Mal ein neues Konto erstellen, wenn Sie Fragen stellen: * http://stackoverflow.com/questions/3860271 * http://stackoverflow.com/questions/4108853 –

Antwort

0
void RecordList::UpdateLocation() { 

    int IDValue; 
    char* strName; 
    char opt; 

    cout << "Enter ID number to update: " << endl; 
    cin >> IDValue; 
     for(Transit = List.begin() ; Transit !=List.end() ; Transit++) { 
     if(Transit->GetID() == IDValue) 
     { 
     cout << Transit->GetID() << endl; 
     cout << "Would you like to set Name ? (y/n) :"; 
     cin >> opt; 
     if (opt == 'y') 
      cin >> strName; 
     Transit->SetName(strName); 

     cout << Transit->GetName() << endl; 
     cout << Transit->GetLocation() << endl; 
     } 

    } 
} 
+0

Danke, das war einfacher als ich dachte, es wäre Sein. Ich habe gerade eine neue lokale Variable erstellt und dann mit Transit-> SetName (strName) eingegeben; – chief

0

Sie programmieren das Transit-Objekt, um eine setXXX() Methode zu haben, und rufen Sie dann diese Methode auf. Iteratoren funktionieren hauptsächlich wie Zeiger, sodass Sie eine Klassenvariable mit einer Setter-Methode ändern können.

Verwandte Themen