7 - Faça a distinção entre vinculação estática e vinculação dinâmica. Explique o uso de funções virtuais e da vtable na vinculação dinâmica.
Passo 1
Primeiramente, a questão pede para falarmos qual a diferença entre a vinculação estática e a vinculação dinâmica. A diferença entre elas é que na vinculação estática, a vinculação é resolvida no tempo de compilação, enquanto na a vinculação dinâmica é resolvida no tempo de execução.
Passo 2
Agora vamos falar sobre o uso das funções virtuais e da vtable.
Bom, quando é usado as funções virtuais, elas asseguram que a função correta seja chamada para um objeto, independente da expressão usada para fazer a chamada da função. Quando C++ compila uma classe que tem uma ou mais funções virtuais, ela monta uma tabela de funções virtuais que são chamadas de vital, para essa classe.
Sempre que o programa for executado, ele usa a verba para selecionar a implementação de função apropriada toda vez que uma função virtual dessa classe for chamada.
Resposta
A diferença entre a vinculação estática e a dinâmica é que na vinculação estática, a vinculação é resolvida no tempo de compilação, enquanto na a vinculação dinâmica é resolvida no tempo de execução.
As funções virtuais, elas asseguram que a função correta seja chamada para um objeto, independente da expressão usada para fazer a chamada da função. Quando C++ compila uma classe que tem uma ou mais funções virtuais, ela monta uma tabela de funções virtuais que são chamadas de vital, para essa classe.
Sempre que o programa for executado, ele usa a verba para selecionar a implementação de função apropriada toda vez que uma função virtual dessa classe for chamada.