Destruktor



  • Hi,

    ich hab eine Klasse mit vier Membervariablen und einem Konstruktor, der den Membervariablen Werte zuweist.

    Also:

    class CFoo
    {
    public:
    	CFoo(std::string a,std::string b,std::string c,std::string d)
              :	m_a(a), m_b(b), m_c(c), m_d(d){};
    
             ~CFoo();
    
    private:
    	std::string m_a;
    	std::string m_b;
    	std::string m_c;
    	std::string m_d;
    };
    

    Wie schaut jetzt der Destruktor für diese Klasse aus?

    Das ist ja Blödsinn :(:

    ~CFoo() 
    {
      delete string;
    }
    

    mfg,
    soad



  • Der Dtor kann leer sein. Weil du hast ja keine Membervariable/Attribut mit new angelegt. Nur wo ein new ist, muß auch ei delete sein. Die Stringts liegen bei deinem Beispiel aber als Objekte auf dem Stack, die werden autom. aufgeräumt.



  • Ok danke!
    Muss ich den Destruktor in der Klasse trotzdem deklarieren oder kann ich ihn jetzt ganz weg lassen?



  • Den kannst du weglassen. Den mußt du erst implementieren (auch wenn er leer ist), wenn du CFoo als Basisklasse machen willst. Aber so sehe ich zur Zeit keinen Grund.


Anmelden zum Antworten