Ich habe eine Frage. dieses Template-Klasse BetrachtenDestruktor der Vorlage Klasse mit Zeiger
template<class T>
class nodo{
public:
T data;
};
des Nehmen wir an, dass ich die destructor bin nicht neu zu definieren. Wenn wir annehmen, dass T = int ist, hebt der Standarddestruktor die Daten auf. Aber was passiert wenn T = int *? Wird nur der Zeiger aufgehoben oder das Objekt zugespitzt? In der Theorie nur der Zeiger.
Wie kann ich das Objekt aufheben? Wie kann ich am Ende den Destruktor einer Template-Klasse schreiben, die einen Template-Parameter hat, der ein Pointer sein könnte (und damit eine explizite Deallocation)?
leicht zu beheben, machen 'T' statt' unique_ptr 'statt. Dann wird das zugespitzte Objekt automatisch zerstört –
vu1p3n0x
Es ist nicht anders als wenn du 'class nodo {public: int * data;}' gemacht hättest. – GManNickG
@ vu1p3n0x, unique_ptr funktioniert auch wenn Daten kein Zeiger ist? – CodeBott