| Do not use default arguments with overloaded functions. |
| Allocate memory using 'new' and release using 'delete'. Do not use the C memory management functions malloc(), realloc(), and free(). |
| Ensure the form used when invoking 'delete' is the same form that was used when memory was allocated using 'new'. |
| Do not specify the number of elements when deleting an array of objects. |
| Do not return a dereferenced pointer initialised by dynamic allocation within a function. |
| Write operator delete if you write operator new. |
| Document that operator new and operator delete are static by declaring them static. |
| On use of delete always set the pointer to zero after the delete. |