Was meinst Du, weswegen man in Java oder C# serialisiert... ^^ Die kochen genauso mit Wasser.Yoghurt hat geschrieben:Okay jetzt hab ichs kapiert. Der Zeiger für die VTable findet einfach seinen Inhalt nicht mehr.Xin hat geschrieben:Zeiger funktionieren nicht über das Netzwerk. Sobald Du über das Netzwerk was verschickst, sind die zwar Zeiger gültig übermittelt, aber sie gelten halt für einen anderen Computer.
Die Virtual-Table ist ein Zeiger - und der zeigt beim Empfänger zwar genau da hin, wo er auch beim Sender hinzeigt, nur ist beim Empfänger da nicht zwangsläufig der gleiche Inhalt im Speicher.
Wie würde man dann sowas in C++ umsetzen? Also wenn ich ein Objekt von einer erbenden Klasse übers Netzwerk verschicken will?
In Java oder C# könnte man ja theoretisch das Objekt serialisieren, verschicken, deserialisieren und dann wieder verwenden.
Wie würde man das in C++ machen? Naja... Serialisieren, verschicken, deserialisieren...
Der Vorteil der event_id ist ja eben, dass sie nicht serialisiert werden muss. Es ja kein Pointer. Solange in der Datenstruktur keine Pointer enthalten sind, ist die Datenstruktur serialisiert und muss nicht verändert werden. Man kann sie also direkt am Stück verschicken und auf der anderen Seite (mit geringem Risiko) einfach behaupten, dass das eine Instanz der Klasse ist.
Jaaaaa, ich begann auch langsam an meiner Fähigkeit zu erklären zu zweifeln ;-DXin hat geschrieben:Danke für die vielen Erklärungen und deine Geduld.^^