2017-10-08 9 views
0

カスタムクラスオブジェクトをキューに追加して、それを削除して戻します。オブジェクトの内容が変更されます。 たとえば、買い物客の優先度を10に設定した後、それをキューに追加してから削除し、10を返さない優先度をもう一度チェックします。これはintのような他のデータ型と完全に機能します。なぜそれがそのタイプで動作していないのか分かりません。エラーの可能性はありますか?オブジェクトが返されていません同じ

//main.cpp 
PriorityQueueSearch<Shopper> b; 
Shopper temp(10); 
b.add(temp); 
Shopper removed = b.remove(); 
std::cout<<removed.getPriority(); 
+4

はい、多くのエラーの原因が考えられます。私たちは 'PriorityQueueSearch'と' Shopper'が何であるか分からないので、私たちはあなたを推測し、助けることはできません。問題を[mcve]に還元して貼り付けてください。 – aschepler

答えて

0

ありがとうございました。 PriorityQueueSearchは、キュー(ArrayQueueクラス)の配列実装の単なるサブクラスでした。そしてShopperはその変数の1つとしてランダムな優先順位を持つクラスでした。

オーバーロードされた演算子にエラーがありました。どうやら、比較演算子(==)をオーバーロードしたいときに代入演算子(=)をオーバーロードしていました。その余分な '='を関数プロトタイプに追加すると、問題が解消されました。

私が入力しているものに細心の注意を払うことです。

関連する問題