Click here to Skip to main content
15,886,724 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi All

I want to know how to destroy objects in VC++
AS i create a function


//test.h

test
{
 public :
    void add(-------)
}


// Another file using test.h

#include "classtest.h"
#include "test.h"

void classtest::testObjects(-------) 
{

  test testObj1;
    testObj1.add(------)


// now here i want to destroy the object testObj1 how to destroy it.

}


plz Help
Posted
Comments
prog786 14-May-12 2:20am    
Also i wana know how delete and recreate the objects

1 solution

In your example above, since the class instance is created on the stack, it is automatically deleted when the function ends, since it goes out of scope.
I.e - your object no longer consumes memory after the closing brace } of the function.

As for creating and deleting objects, you could do so like this:

test *testObj;
testObj = new test;
..
some operations using testObj
..
delete testObj;

Note, that when you create objects like this they will NOT be automatically deleted when they go out of scope. (The 4bytes(on a 32bit sys) used to point to the object will be returned to the stack, but the memory consumed by the class object itself, won't be)

If you were to change your code above to:
C++
void classtest::testObjects(-------) 
{
 
  test *testObj1 = new test;
  testObj1->add(------)
// testObj1 not deleted, this will cause a memory leak!
}
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900