0

皆さん、私はこのエラーに対する答えを探していましたが、私のケースに固有のものはありませんでした. クラス User があり、各 User には独自のコンピューターのリストがあり、クラス Computer はこれら 3 つのクラス (Operative System、Memory、および Processor) で構成されています。そのため、Computer には独自の toString があり、上記のコンポーネントから特定の toString を呼び出します。

つまり...ユーザーには自分の属性リスト computerList があります。

私が Controllerer と呼んだ別のクラスには、特定のユーザーからコンピューターのリストを印刷する機能があります。これが私の機能です:

void printComputerList(User* u){
    list<Computer*>::iterator itr;
    for(itr=u->getComputerList().begin(); itr!=u->getComputerList().end(); itr++){
        cout<<(*itr)->toString(); //(*itr) calls its own toString implemented in the class Computer
    }
}

そのため、プログラムを実行しているときに、既に入力したリストを印刷することを選択すると、タイトルからエラーが発生します。私はそれがトトリングの間のある種の混乱だと思いますか?

PD: 必要に応じて残りのコードを投稿できます

ありがとう!

4

1 に答える 1

1

一時リストには (少なくとも) 1 つの問題があります。修正版は次のようになります。

void printComputerList(User* u){
  list<Computer*> const computers = u->getComputerList();
  list<Computer*>::const_iterator it = computers.begin();
  while (it != computers.end())
  {
    cout << (*it)->toString(); //(*it) calls its own toString implemented in the class Computer
    ++it;
  }
}

リストのポインターが有効であることは確かですか (null 以外、ダングリング ポインターではありません)。

于 2012-06-16T18:21:29.507 に答える