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.