/ / OMNET ++ cómo acceder a funciones o variables en otra clase - omnet ++, inet

OMNET ++ cómo acceder a funciones o variables en otra clase - omnet ++, inet

He modificado inet NodeStatus.cc con una función personalizada que devuelve el valor de la variable de la siguiente manera:

 int NodeStatus::getValueA()
{
return ValueA;
}

Luego, creé otro módulo simple llamado simpleNodeB.cc y quise recuperar ValueA de NodeStatus.cc. Probé el siguiente código en simpleNodeB.cc pero no funcionó:

 if(getParentModule()->getSubModule(NodeStatus).getValueA()==test1)
bubble("Value is the same");

El mensaje de error que recibí -> error: se esperaba una expresión primaria antes del token ")". No estoy seguro de haber usado la forma correcta de llamar a la función getValueA (). Por favor, ilumíneme. Muchas gracias.

Respuestas

0 para la respuesta № 1

Hay muchos errores en su código.

  1. El método getSubmodule requiere un nombre de modulo, no es un nombre de clase. Mira tu NED Archivo y compruebe el nombre real de este módulo.
  2. getSubmodule devuelve un puntero a la cModule objeto. Tiene que ser lanzado manualmente en otra clase.

Suponiendo que un NodeStatus módulo en tu NED es nombrado fooStatus El código correcto debería verse como:

cModule *mod = getParentModule()->getSubmodule("fooStatus");
NodeStatus *status = check_and_cast<NodeStatus*>(mod);
if(status->getValueA() == test1)
bubble("Value is the same");

Referencia: Manual de OMNeT ++.