title image


Smiley Re: Unbekanntes Objekt
Hello!Im Gegensatz zu interpretierten Programmiersprachen wie Perl ist sowas bei C++ nicht möglich, da nicht-virtuelle Methoden gar keinen erkennbaren zusammenhang mit dem objekt haben, so ist z.b. folgendes gleich:class Foo { int Bar; void Baz(int Buz);}Foo Fuz;Fuz.Baz(666);und das hierclass Foo { int Bar;}void Baz(Foo* this, int Buz);Foo Fuz;Baz(Fuz, 666);eine nicht-virtuelle Methode ist also nur ein ganz normaler funktionsaufruf, dem ein this-Pointer übergeben wird (thiscall).properties und virtuelle methoden sind auch nicht leich herausfindbar, da die größe des objektes, der properties und deren datentypen unbekannt ist. ein objektclass Foo { int Bar; char Baz;}belegt z.b. 5 bytes: 4 für Bar und 1 für Baz; wenn man ein soclehs objekt antrifft, weiss man aber nicht, das nur die 5 bytes dazugehören und wenn, weiss man auch nicht, wie sie aufgeteilt sind. es könnte genausogutclass Foo { char Baz; char* Bar;}sein. die namen der properties weiss man schon gar nicht...also kann man mit einem objekt nur etwas anfangen, wenn man die header-datei hat bzw. den aufbau genau kennt, so dass man slebst eine header-datei schreiben kann.MfGgoldbarsch

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: