获得我无法解决的奇怪错误。我有几个文件,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