Como escolho a alocação de heap versus alocação de pilha em C +

Um dos recursos do C ++ que o diferencia de outros idiomas é a capacidade de alocar objetos complexos como variáveis membros ou variáveis locais, em vez de sempre ter que alocá-los comnew. Mas isso leva à questão de qual escolher em qualquer situaçã

Existe algum bom conjunto de critérios para escolher como alocar variáveis? Quando devo declarar uma variável de membro como uma variável direta em vez de uma referência ou um ponteiro? Quando devo alocar uma variável comnew em vez de usar uma variável local alocada na pilh

questionAnswers(2)

yourAnswerToTheQuestion