typenid ist eine Struktur, die in einer Klasse-Warteschlange definiert ist, Queue.hSpeicherung struct Variablen von Funktion zu lokalem struct variable
struct typenid{
typenid() : src_type(0), src_id(0){}
uint32_t src_type;
uint32_t src_id;
} node_details;
Das Folgende ist eine Art von Klasse in meinem ereignisgesteuerten Simulator.
class FindNextHopEvent : public event {
public:
FindNextHopEvent(double time, Packet *packet, Queue::typenid node_details);
~FindNextHopEvent();
void process_event();
Packet *packet;
Queue::typenid local_node_details; // should get the value of node_details
};
Ich möchte die node_details Struktur innerhalb process_event() verwenden, aber ich will es nicht als Parameter übergeben werden (aufgrund verschiedener Grund). Gibt es eine Möglichkeit für local_node_details (eine Struktur ähnlich wie node_details), den Wert von node_details zu erfassen, damit ich in process_event() darauf zugreifen kann? Wenn ja, wie kann ich es tun? Wenn ich local_node_details als Zeiger deklariere, kann ich den "this" -Operator verwenden, aber für Strukturen, wie kann ich das tun.
So sieht meine aktuelle Definition aus.
FindNextHopEvent::FindNextHopEvent(
double time,
Packet *packet,
Queue::typenid node_details
): event(NEXT_HOP_EVENT, time) {
this->packet = packet;
Queue::typenid local_node_details= node_details;
}
Jede Hilfe wird sehr geschätzt.
Was genau ist das Problem mit der Implementierung Sie jetzt, wo Sie passieren ' node_details' zum ctor und dann in die Membervariable kopieren? Sie können bereits 'local_node_detail' in' process_event() 'aufrufen. – JBL
Inwiefern funktioniert die aktuelle Definition nicht? –
local_node_details hat nicht denselben Wert wie node_details – user2532296