Devo preferir ponteiros ou referências nos dados dos membro

Este é um exemplo simplificado para ilustrar a pergunta:

class A {};

class B
{
    B(A& a) : a(a) {}
    A& a;
};

class C
{
    C() : b(a) {} 
    A a;
    B b; 
};

@ B é responsável por atualizar uma parte do C. Executei o código através do fiapo e ele se queixou do membro de referência: lint # 1725. Isso fala sobre cuidar das cópias e atribuições padrão o que é justo o suficiente, mas a cópia e a atribuição padrão também são ruins para os ponteiros, portanto, há pouca vantagem l

Sempre tento usar referências onde posso, pois ponteiros nus apresentam incertezas sobre quem é responsável por excluir esse ponteiro. Prefiro incorporar objetos por valor, mas se precisar de um ponteiro, uso auto_ptr nos dados dos membros da classe que possui o ponteiro e transmito o objeto como uma referênci

Geralmente, eu usaria apenas um ponteiro nos dados dos membros quando o ponteiro pudesse ser nulo ou mudar. Existem outros motivos para preferir ponteiros do que referências para membros de dados?

É verdade que um objeto que contém uma referência não deve ser atribuído, pois uma referência não deve ser alterada depois de inicializad

questionAnswers(20)

yourAnswerToTheQuestion