Usually you have non-dynamic objects, but you have many situation in which you may need dynamic objects: resizable arrays, pointers to base class etc... static objects are a different thing, you may need them in classes where a member should be the same for all the instances