Powód, dlaczego nie mieć makro DELETE dla C ++

Są tamżadnych dobrych powodów (może z wyjątkiem „makra są złe”)NIE używać następujących makr?

#define DELETE( ptr ) \
if (ptr != NULL)      \
{                     \
    delete ptr;       \
    ptr = NULL;       \
}

#define DELETE_TABLE( ptr ) \
if (ptr != NULL)            \
{                           \
    delete[] ptr;           \
    ptr = NULL;             \
}

questionAnswers(12)

yourAnswerToTheQuestion