C++ Memory Management

Creating Objects

w/ Default Constructor:

One Object Array of Objects
On Stack:

Obj a;

Obj a[10];

On Heap:

Obj* a = new Obj;

Obj* a = new Obj[10];

w/ Named Constructor:

One Object Array of Objects
On Stack:

Obj a(x);

Obj a[] = {Obj(x), Obj(y)};

On Heap:

Obj* a = new Obj(x);

Obj* a = new Obj[10];

a[0].initFxn(x);

a[1].initFxn(y);

Calling Methods:

One Object Array of Objects
On Stack:

a.doSomething();

a[0].doSomething();

On Heap:

a->doSomething();

a[0].doSomething();

Deleting objects

New::Delete as Malloc::Free

One Object Array of Objects
On Stack:

(automatic)

(automatic)

On Heap:

delete a;

delete [] a;