该头文件描述的对象需要放在priority_queue中;因此我在下面的代码底部做了操作符重载。当我尝试调用处于优先级队列中的进程成员的getter函数之一时,出现此格式的错误:STL:超载和getter方法
test.cpp:xx:error:passing ... as ...参数...丢弃者限定符
正如你所看到的,我试图通过声明某些变量为公开的廉价解决方法,但是当我试图从主程序中改变这些时,它说它不能从一个只读的变量中改变这些变量,唯一的文件。我对STL相当陌生。有什么办法解决这个问题或解决方法?
class process
{
int priority; //for priority queues
public:
process();
~process(){};
void setPri(int newPri) {priority = newPri;}
int getPri() {return priority;}
};
class compareProcess
{
public:
bool operator() (process& param1, process& param2)
{
if (param1.getPri() > param2.getPri()) return true;
else return false;
}
};
请更准确地描述错误信息。将错误消息填写完整,并将我们指向无法编译的行号。 – sfrehse 2014-10-27 15:57:30
'抛弃限定符'最有可能是一个常量问题 – Drax 2014-10-27 15:58:15
无论如何,为什么你没有缩进? – Deduplicator 2014-10-27 15:58:35