对象不会返回相同的内容

时间:2017-10-08 03:34:34

标签: c++11

当我将自定义类对象添加到队列中时,通过删除将其取回。对象的内容已更改。 例如,我将购物者的优先级设置为10,然后将其添加到队列中,然后将其删除并再次检查优先级,这不会返回10.这与其他数据类型(如int)完美配合。不知道为什么它不适用于该类型。任何可能的错误来源?

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

1 个答案:

答案 0 :(得分:0)

感谢您的帮助。 PriorityQueueSearch只是queue(ArrayQueue类)的数组实现的子类。 Shopper只是将随机优先级作为其变量之一。

错误发生在重载运算符中。显然,当我想重载比较运算符(==)时,我正在重载赋值运算符(=)。在函数原型中添加额外的'='可以解决问题。

对自己的建议是密切关注我正在输入的内容。