Difference between Object var and Object* var = new Object()

后端 未结 5 1005
醉酒成梦
醉酒成梦 2021-01-20 00:24

If I have a class named Object, what\'s the difference between creating an instance just like that:

Object var;

and:

Object         


        
5条回答
  •  北海茫月
    2021-01-20 00:52

    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.

提交回复
热议问题