2010-11-22 4 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; 
    } 

    } 
} 

この関数は、一意のID番号でレコードを検出します。新しいレコードにはそれぞれID番号が与えられます。 ID 2に入力すると、関数はID 2のレコードを表示します。レコードの属性の1つを変更するにはどうすればよいですか?この場合、その場所です。ベクトルの値を更新する

+2

誰が知っていますか。このコンテナにはどのようなタイプのオブジェクトが格納されており、場所を変更できるのですか? –

+0

ミューテータメソッドがありますか? 'Transit-> SetID(9)'は機能しますか? –

+0

質問をするたびに新しいアカウントを作成すると嫌いです。* http://stackoverflow.com/questions/3860271 * http://stackoverflow.com/questions/4108853 –

答えて

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

ありがとうございましたさあ。私は実際に新しいローカル変数を作成し、Transit-> SetName(strName)でそれを入力しました。 – chief

0

TransitオブジェクトにsetXXX()メソッドがあるようにプログラムし、そのメソッドを呼び出します。イテレータは主にポインタのように動作し、setterメソッドでクラス変数を変更できます。

関連する問題