Porque o professor usou uma referência na hora de fazer o cast? se ele usasse só o tipo iria ter o mesmo resultado?
Porque o professor usou uma referência na hora de fazer o cast? se ele usasse só o tipo iria ter o mesmo resultado?
Olá, João!
Na aula que você mencionou, o professor utilizou uma referência na hora de fazer o cast porque ele queria tratar a variável umaOutraConta
, que é uma conta-corrente, como se fosse uma conta.
Em C++, quando falamos de herança, não conseguimos ter sobrecarga de funções. Por isso, para chamar um método específico da classe derivada ou da classe base, precisamos garantir que estamos trabalhando com um tipo específico. Nesse caso, o professor fez o cast de umaOutraConta
para uma referência para Conta
, ao invés de ser uma conta-corrente.
Dessa forma, o depósito funciona e chama a função correta.
Por exemplo, se tivermos o seguinte código:
ContaCorrente umaOutraConta;
(Conta&) umaOutraConta += 300;
O operador +=
será chamado corretamente para a classe Conta
.
Espero ter ajudado e bons estudos!