如何将 cMessage 类型转换为消息定义类型

How to typecast cMessage to message definition type

我已经使用 OMNeT++ 的消息定义工具创建了一个消息类型 WowMessage。假设 class Server 的重写 handleMessage 函数总是接收 WowMessage 消息,该消息最初作为 cMessage 处理。我将如何进行从 cMessageWowMessage 的类型转换,以便我可以使用 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
}