Dependência circular em C ++

Os fatos:

Eu tenho duas classes predominantes: gerente e especialista.Existem vários tipos diferentes de especialistas.Os especialistas geralmente precisam da ajuda de outros especialistas para realizar seu trabalho.O gerente conhece todos os especialistas e, inicialmente, cada especialista conhece apenas o gerente. (Este é o problema.)Em tempo de execução, o gerente cria e armazena uma lista de especialistas. Em seguida, o gerente percorre a lista e pede a cada especialista para inicializar. Durante a inicialização, cada especialista pede ao gerente que forneça a eles outros especialistas que preenchem alguma descrição. Uma vez concluído, o gerente entra em um ciclo durante o qual os especialistas são solicitados sequencialmente a executar sua tarefa especializada.

Para mim, parece que esse é um padrão decente, mas como um gerente tem uma lista de especialistas e um especialista tem um gerente, estou tendo problemas circulares de dependência.

É este o caso em que de alguma forma devo declarar a existência de uma classe de outra? (Se sim, como?) Ou devo usar algum padrão de design para corrigir esse problema? (Se sim, o quê?) Além disso ... eu pensei que o padrão em si era bonito. então eu não me importaria de alguém me ajudar a entender por que isso é uma coisa ruim.

questionAnswers(5)

yourAnswerToTheQuestion