我已经使用 OMNeT++ 的消息定义工具创建了一个消息类型 WowMessage
。假设类 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
}
关于c++ - 如何将 cMessage 类型转换为消息定义类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57153987/