-1

テンプレートを使用して任意のデータ型 T に対応するキューを実装する必要があり、実装する必要がある 1 つの関数は T getFirst() と呼ばれ、最初のノードの値を返します。私の元のアプローチは次のとおりです。

T getFirst(){
    T returnValue = _first->_data;
    return returnValue;
}

電話すると、これが機能しないことがわかりました

Queue<int> q;
q.add(2);
cout << Q.getFirst() << endl;

出力はゴミです。驚くべきことは、コードを単純化すると次のようになることです。

T getFirst(){
    return _first->_data;
}

それは動作します!!、なぜ??? 誰か説明してくれませんか。最初のアプローチが必要な理由は、後で removeFirst() を実装する必要があるためです。これには、データの一時的な保持が必要になる場合があります。どうもありがとうございました!!!

4

2 に答える 2

3

あなたが実際に望んでいるように見えます:

return returnValue;
于 2013-04-07T16:46:34.297 に答える
1

ここにエラーがあります:

T getFirst(){
   T returnValue = _first->_data;
   return getFirst;  //^^^You return function name? 
}

する必要があります

T getFirst(){
   T returnValue = _first->_data;
   return returnValue ;
}  
于 2013-04-07T16:46:37.323 に答える