O que (não) fazer em um construtor

Quero pedir suas melhores práticas em relação aos construtores em C ++. Não sei bem o que devo fazer em um construtor e o que não.

Devo usá-lo apenas para inicializações de atributos, chamando construtores-pai etc.? Ou posso até colocar funções mais complexas nelas, como ler e analisar dados de configuração, configurar bibliotecas externas a.s.o.

Ou devo escrever funções especiais para isso? Resp.init() / cleanup()?

Quais são os PRO e CON aqui?

Eu descobri ainda que, por exemplo, posso me livrar de ponteiros compartilhados ao usarinit() ecleanup(). Eu posso criar os objetos na pilha como atributos de classe e inicializá-lo mais tarde enquanto ele já estiver construído.

Se eu lidar com isso no construtor, preciso instanciar durante o tempo de execução. Então eu preciso de um ponteiro.

Eu realmente não sei como decidir.

Talvez você possa me ajudar?

questionAnswers(13)

yourAnswerToTheQuestion