hi C++ Mitbegeisterte,
ich schaue Udemy und sehe diese Code-Zeile
auto TraceHitWeapon = Cast<AWaffe>(TraceHitItem);
was bedeutet dieses "auto" sehe es zum ersten mal, einer ne Idee/Erklärung?
danke schonmal.
hi C++ Mitbegeisterte,
ich schaue Udemy und sehe diese Code-Zeile
auto TraceHitWeapon = Cast<AWaffe>(TraceHitItem);
was bedeutet dieses "auto" sehe es zum ersten mal, einer ne Idee/Erklärung?
danke schonmal.
auto sorgt automatisch dafür, dass spätestens zur Compile time der richtige Typ eingesetzt wird.
In diesem Fall sorgt ja die Cast<AWaffe> funktion dafür, dass ein AWaffe* pointer rauskommt. Aus
auto TraceHitWeapon = Cast<AWaffe>(TraceHitItem)
wird also automatisch
AWaffe* TraceHitWeapon = Cast<AWaffe>(TraceHitItem)
Der Vorteil ist, sagen wir mal irgendwann später merkt du du musst doch eher zu AAndereWaffe casten.
So musst du nur den Teil zwischen den <> ändern. Das verringert den Wartungsaufwand, da eine einzige Änderung sich auch automatisch auf die "auto" Variablen auswirkt, anstatt dass du alle lokalen Variablen manuell Nachziehen musst.
Der Nachteil ist dass der Typ einer auto Variable nur implizit bekannt ist und nicht explizit. Du weißt also nur aus dem Kontext welcher Typ sich hinter TraceHitWeapon verbirgt. In diesem Fall ist es einfach zu verstehen, also ein recht guter Einsatz von auto, bei komplexerem Code könnte es jedoch die Verständlichkeit deines Codes verringern.
Der Nachteil ist dass der Typ einer auto Variable nur implizit bekannt ist und nicht explizit. Du weißt also nur aus dem Kontext welcher Typ sich hinter TraceHitWeapon verbirgt. In diesem Fall ist es einfach zu verstehen, also ein recht guter Einsatz von auto, bei komplexerem Code könnte es jedoch die Verständlichkeit deines Codes verringern.
Ist der Typ rechts der Zuweisung klar ersichtlich, kann man auto nehmen, wie z.B. beim cast. Ist der Typ nicht klar ersichtsicht z.B. wenn man eine Methode/Funktion aufruft, wo man den Rückgabetyp nicht sehen kann sollte man auf auto verzichten.