Destruktor
-
Hallo!
Kurze (peinliche) frage zum Destruktor:
class CClass() { public: CClass(); ~CClass(){delete x;}; protected: int x; } CClass::CClass(){x = 2;}
Da kracht´s ja im Compiler. Warum? Oder muß ich hier garnicht deleten?
DANKE IM VORAUS!
-
du musst garnicht deleten. delete musst du nur benutzen, wenn die klasse so aussehen würde:
class CClass{ public: CClass(); ~CClass(){delete x;} protected: int* x; }; CClass::CClass(){x = new int(2);}
nur nach einem new folgt ein delete
//edit5 aber deine Klasse ist auch ganz und garnicht fehlerfrei. leider merkt man sowas erst nachdem man sie C&p hat und dann auf abschicken drückt-.-
-
otze schrieb:
//edit5 aber deine Klasse ist auch ganz und garnicht fehlerfrei. leider merkt man sowas erst nachdem man sie C&p hat und dann auf abschicken drückt-.-
Wie meinen?
-
vergleiche mal deinen code mit meinem(die zeile mit new ausgenommen)-.-
-
class CClass(){} --> class CClass{}
oke, oke, sag doch gleich, ich depp! Hehe - klar...
Danke!! Musste schnell gehen.Also bleibt bei sowas keine Speicherleiche übrig?! Wann ist es dann notwendig (ausser new...) zu deleten ([])?
-
nach new[] musst du auch deleten
-
Hey, danke!
Du bist gut! Kannst Du mir evtl. auch mit Waitforsingleobject etc. im Bezug auf Createfile() zum schlafenlegen eines com ports bis ein Ereignis eintritt weiterhelfen?