ошибка в конкатенации содержимого нескольких сообщений omnet ++ - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть этот код, где я беру сообщение из дескриптора сообщения из обоих блоков процесса (Hey.cc и See.cc) и объединяю его в новое сообщение (в There.cc), но, похоже, оно не работает, пожалуйстаhelp

Hey.cc

#include "Hey.h"

Define_Module(Hey);

void Hey::initialize()
{
    // TODO - Generated method body
    cMessage *mmsg = new cMessage("hello");
    send(mmsg,"hello");
}

void Hey::handleMessage(cMessage *msg)
{
    // TODO - Generated method body
}

и See.cc

#include "See.h"

Define_Module(See);

void See::initialize()
{
    // TODO - Generated method body
    cMessage *smsg = new cMessage("hi");
    send(smsg,"tempexit");
}

void See::handleMessage(cMessage *msg)
{
    // TODO - Generated method body
}

и There.cc

#include "There.h"
#include "See.h"
#include "Hey.h"
#include <string>

Define_Module(There);

void There::initialize()
{
    // TODO - Generated method body
}

void There::handleMessage(cMessage *msg)
{
    cMessage *smsg = new cMessage("hi");    // supposed to be from See.cc
    cMessage *mmsg = new cMessage("hello"); // supposed to be from Hey.cc
    cMessage strNew = *smsg;
    cMessage sstrNew = *mmsg;
    cMessage rNew = strNew + sstrNew ;

    EV << rNew ;
}

1 Ответ

0 голосов
/ 09 декабря 2018
  1. Второй аргумент метода send должен быть имя элемента или указатель на cGate объект.Hey.ned содержит hello выходной вентиль, а See.ned содержит tempexit вентиль?

  2. Класс cMessage не имеет operator+, поэтому один не может добавить два экземпляра cMessage.Кстати: что вы ожидаете в результате этой операции?Если сообщения инкапсуляции, вы должны использовать encapsulate () .

...