Я создал тип сообщения WowMessage
с помощью инструмента определения сообщений OMNeT++. Предположим, что переопределенная функция Server
класса handleMessage
всегда получает сообщение WowMessage
, которое изначально обрабатывается как cMessage
. Как мне выполнить приведение типов из cMessage
в WowMessage
, чтобы я мог использовать определенные поля-члены и функции типа WowMessage
?
void Server::handleMessage(cMessage *msg)
{
// Receives WowMessage which is subclassed from cMessage...
// TODO: typecast from cMessage to WowMessage
forwardMessage(msg);
}
void Server::forwardMessage(WowMessage *msg)
{
send(msg, "port$o", msg->getDestAddress() - 1);
}
Используйте dynamic_cast
, например, так:
WowMessage * wowMsg = dynamic_cast<WowMessage *>(msg);
if (wowMsg) {
// msg is an instance of WowMessage
} else {
// another message
}