Thread: Destructor not being Called

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered User
    Join Date
    Dec 2010
    Posts
    19

    Destructor not being Called

    Hi,

    Pseudocode of architecture:
    Code:
    class class2 {
        private:
            float* class_array;
        public:
            class2() { class_array = new float[10]; }
            ~class2() { delete [] class_array; }
    }
    class class1 {
        private:
            class2 my_class;
            int* unimportant_array;
        public:
            class1() {
                unimportant_array = new int[4];
            }
            ~class1() {
                delete [] unimportant_array;
            }
    }
    int main() {
        //...
        class1* var = new class1();
        //...
        delete var;
        //...
    }
    For some reason, I'm getting a memory leak. Using breakpoints, I've determined that the destructor of "class2" isn't called, and therefore "class_array" isn't getting delete-ed. But, when "class1" is destructed, shouldn't "my_class" also be destructed? Ideas?

    Thanks,
    Ian
    Last edited by Geometrian; 05-01-2011 at 12:07 PM. Reason: error in pseudocode

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. destructor not called?
    By waysgoose in forum C++ Programming
    Replies: 3
    Last Post: 04-11-2010, 01:08 AM
  2. Why would the destructor be called?
    By therabidwombat in forum C++ Programming
    Replies: 5
    Last Post: 02-15-2009, 12:09 PM
  3. Why the destructor is called?
    By scherzo in forum C++ Programming
    Replies: 5
    Last Post: 10-23-2007, 05:11 AM
  4. Why is destructor being called??
    By Bill83 in forum C++ Programming
    Replies: 31
    Last Post: 03-21-2006, 09:49 PM
  5. Why is destructor being called??
    By Bill83 in forum C Programming
    Replies: 6
    Last Post: 03-20-2006, 06:16 AM