If I have a class named Object, what\'s the difference between creating an instance just like that:
Object var;
and:
Object
Here you are creating var on the stack:
Object var;
So in the above, var
is the actual object.
Here you are creating var on the heap (also called dynamic allocation):
Object* var = new Object()
When creating an object on the heap you must call delete
on it when you're done using it. Also var
is actually a pointer which holds the memory address of an object of type Object
. At the memory address exists the actual object.
For more information: See my answer here on what and where are the stack and heap.