該頭文件描述的對象需要放在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