Ao modelar um objeto com filhos, é comum incluir os filhos por meio da composição, como um membro da classe pai. Às vezes, porém, os filhos precisam dizer algo aos pais, eles precisam chamar uma função dos pais. Como isso pode ser feito usando C ++? Algumas opções são:
Torne a classe pai global, portanto, os objetos filho poderão chamar funções de membro do objeto pai.
Injete o objeto pai como um ponteiro ou referência em cada objeto filho. Então, quando o filho precisar informar algo ao objeto pai, ele sempre poderá fazê-lo porque possui uma variável de membro que pode usar.
Quais são os outros métodos para fazer isso? Existe um padrão geral de design ou nome para esse tipo de coisa?
Observe que estou interessado em idéias e soluções em C ++ porque os detalhes serão diferentes em outras linguagens orientadas a objetos. Por exemplo, o ponto 2 acima menciona 'ponteiros ou referências' e ambos são possíveis apenas em C ++. O C ++ possui recursos de linguagem que não estão presentes em outros idiomas; portanto, implementações de uma solução para o problema potencialmente incorporarão esses recursos de linguagem, tornando a solução diferente do que alguém pode inventar em outro idioma.
delegate
?