-5

こんにちは、私はコールセンターでキューをシミュレートするプログラムに取り組んでいますが、この問題に遭遇し、その理由がわかりません...

エラー: バイナリ '==' : タイプ '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()
{

}
4

1 に答える 1

4

getAgentId()問題は、クラスのメソッドがagentint を返さないことです。むしろ、 を返しますagent。それに加えて、すべてが機能するようです。

また、あなたの機能には小さな矛盾がありますremoveAgent(int id)。の名前をに変更してみてagent* removeAgentくださいagent* agentToRemove。これは技術的には問題にならないはずですが、ローカル変数に関数と同じ名前を付けることはベスト プラクティスではありません。

于 2013-08-14T21:58:00.357 に答える