It depends whether you want an object or a pointer.
Advantages to using a pointer:
- you can control when the ctor and dtor are called (by explicily calling new/delete)
- or you can point to an object that exists elsewhere (useful if you are not the owner of this object or if ownership is shared)
Disadvantages to using a pointer:
- you have to explicitly call new/delete
- or you have to assign the pointer to point to another object