C ++: Argumento Passing “passed by reference”

Eu entendo como com qualquer outra variável, o tipo de um parâmetro determina a interação entre o parâmetro e seu argumento. Minha pergunta é: qual é o raciocínio por trás de por que você faria referência a um parâmetro versus por que você não o faria? Por que algumas funções são referência de parâmetros e outras não? Tendo dificuldade em entender as vantagens de fazê-lo, alguém poderia explicar?

questionAnswers(4)

yourAnswerToTheQuestion