Zwei Begriffe: Object-Lifetime Ressource-Lifetime
-
Hallo Zusammen,
Es gibt zwei Begriffe in OOP, in dem ich den Unterschied nicht klar sehen kann:
Was sind die Unterschiede/Beziehung zwischen Object und Resource Lifetime?
Heisst eigentlich ein Object nicht Resource fuer die aufrufende Klasse wenn
ich mit "new" operator erzeuge?// in aufrufer SomeOtherClass.cpp Klasse* kl = new Klasse() ;
Denn ich ja mit "new" Speicher auf dem Heap reserviere und dadurch habe ich
ja "Resourcen" belegt.Wird es mit "Resource-Lifetime" gemeint, das Lebenzyklus der Resourcen, die ein
Objekt besitzt [ Lebenszyklus = | creation_time - delete_time | ] ?beispiel:
// (nicht getestet). class Klasse{ public: Klasse(short sh){ first_resource = new string[sh] ; // first resource_lifetime begins. } virtual ~Klasse(){ if(this->first_resource) del this->first_resource ; } void delFirstResource(){ del this->first_resource ; // first resource_lifetime ends } private: std::string* first_resource ; unsigned int second_resource[100] ; // second source.. // ist resource lifetime == object_lifetime von Klasse? };
Danke im voraus,
-
wenn du ein objekt deinerklasse erzeugt, welche in dem konstruktor ein resource allokiet, und diese wieder im destruktor gelöscht wird dann jaa...
sollange das objekt lebt, solang lebt deine ressource
das gleiche gilt für statisch member (secondressoure)
wobei dieses autoamtisch zerstört bzw. freigegebn wird.