獲得我無法解決的奇怪錯誤。我有幾個文件,Store.cpp,Store.h(類存儲定義在這裏),Order.cpp,Order.h(類定義在這裏定義)。C++無效的參數,候選人是:「..」來自不同類的Setters
Store.cpp有#include "Order.h"
。
類Order
裏面我有在公共部分有一些getter和setter方法,其中之一是:
void setStatus(const OrderStatus& orderStatus);
OrderStatus是一個枚舉。
當我試圖在Store.cpp與以下行使用它:
(*itr).setStatus(ORDER_DONE);
我從日食出現此錯誤:
Invalid arguments ' Candidates are: void setStatus(const enum {order.h:140} &) '
而且從GCC這個錯誤:
Store.cpp:250:31: error: no matching function for call to âOrder::setStatus(OrderStatus) constâ Store.cpp:250:31: note: candidate is:
order.h:47:7: note: void Order::setStatus(const OrderStatus&)
order.h:47:7: note: no known conversion for implicit âthisâ parameter from âconst Order*â to âOrder*â
我真的不知道const來自哪裏(第250行)。
抱歉,我的意思是你需要一個非const迭代器。 –
這就是即時通訊使用.. \t的(設置:迭代ITR =這個 - > orders.begin(!); \t \t \t ITR =這個 - > orders.end(); ++ ITR) –
@ NadavPeled:設置只允許const訪問,否則你可能完全打亂了排序。 – Xeo