ich untersuche gerade fremden Code. Der Autor des Codes hat festgestellt, dass die Verwendung von Objekt Pointern für die Kern Klassen die Ausführungsgeschwindigkeit der Anwendung verringert.
langsame Ausführungsgeschwindigkeit ------------------------------------ #define s_test test Klasse *test;
Ich würde es so machen ----------------------- Klasse s_test;
s_test.Methode();
Wäre meine normale Form der Objekterstellung, was die Ausführungsgeschwindigkeit betrifft, nicht gleichwertig oder sogar schneller als das Bsp: "schnelle Ausführungsgeschwindigkeit"? Meine Vermutung ist, dass der Autor des Codes die Form "#define s_test &test" gewählt hat um nicht den ganzen Code von der Form s_test - > Methode(); in die Form s_test.Methode(); umzuschreiben. Wie seht ihr das?
Also, es kommt darauf an Was und WIE er das objekt erzeugt. Beim Start wird nun mal zuerst alle Objekte die mit
klasse instanz;
erzeugt werden in den speicher geladen (stack) das kann natürlich dauern wenn der stack fast voll ist oder die objekte kompliziert initialisiert werden, sind aber verfügbar wenn z.b eine funktion aufgerufen wird o.ä. wenn du in einer funktion dann erst speicher im heap für ein objekt erzeugst, kann das u.U länger dauern. Aber eigentlich sollte der Geschwindigkeitsunterschied minimal sein.
Ansonsten sind die defines tatsächlich meiner meinung faulheit. -- class God : public ChuckNorris { };