嘿伙计们我正在制作一个程序来模拟呼叫中心的队列,但我遇到了这个问题并且不明白为什么......
错误:二进制'==':找不到哪个操作符带有'agent'类型的左操作数(或者没有可接受的转换)
#include "stdafx.h"
#include "dialer.h"
dialer::dialer()
{
//hidden
}
dialer::dialer(campaign *campaignOnDialer)
{
this->campaignOnDialer = campaignOnDialer;
}
void dialer::tick()
{
for(int callCount = 0; callCount <= callsOnDialer.size() -1; callCount++)
{
//Goes through each call in queue and ticks
callsOnDialer.front().tick();
callsOnDialer.push(callsOnDialer.front());
callsOnDialer.pop();
}
}
void dialer::addAgent(agent newAgent)
{
agentsOnDialer.push_back(newAgent);
}
agent* dialer::searchAgentById(int id)
{
std::list<agent>::iterator frontIterator = agentsOnDialer.begin();
agent foundAgent;
while(frontIterator->getAgentId() != agentsOnDialer.end()->getAgentId())
{
if(frontIterator->getAgentId() == id)
{
foundAgent = frontIterator->getInstance();
return &foundAgent;
}
else
frontIterator++;
}
return NULL;
}
bool dialer::removeAgent(int id)
{
agent* removeAgent = searchAgentById(id);
if(removeAgent == NULL)
return false;
agentsOnDialer.remove(*removeAgent);
return true;
}
void dialer::assignNextCall()
{
int assignedAgentId = getIdleAgentId();
if(assignedAgentId == -1 || callsOnDialer.empty())
return;
int nextCallId = callsOnDialer.front().getCallId();
}
int dialer::getIdleAgentId()
{
}
答案 0 :(得分:4)
问题似乎是getAgentId()
类中的方法agent
没有返回int;而是返回agent
。除此之外,一切似乎都能够奏效。
此外,您的removeAgent(int id)
功能存在轻微差异。尝试将agent* removeAgent
重命名为agent* agentToRemove
。即使这在技术上不应该是一个问题,但是将局部变量命名为函数也不是最好的做法。