Michael S. schrieb:
> 1. wie wird der Parameter (Entity* ptr) den ScopedPtr Constructor
> übergeben ?
Einfach so, oder was meinst du mit "wie"?
Dein 'new Entity()' erzeugt einen Zeiger auf Entity, und dieser wird als
Parameter 'ptr' an den ScopedPtr-Konstruktor übergeben.
> 2. Warum kann ich das Objekt e über die Entity Klasse erstellen, muss
> ich hier nicht vererben (also class ScopedPtr : public Entity)?
Nein. Du hast einen Konvertierkonstruktor von Entity* nach ScopedPtr
definiert, und der kommt hier zur Anwendung. Wenn du keine implizite
Konvertierung willst, musst du den Konstruktor als 'explicit'
definieren:
1 | explicit ScopedPtr(Entity* ptr) : m_ptr(ptr){}
|