Junior
O que é polimorfismo no contexto das linguagens de programação C/C++?
sobes.tech IA
Resposta da IA
O polimorfismo é a propriedade dos objetos de terem múltiplas formas ou representarem vários tipos numa hierarquia de herança. Permite trabalhar com objetos de diferentes classes através de uma interface comum da classe base.
Em C++, o polimorfismo é implementado de duas formas principais:
-
Polimorfismo em tempo de compilação (estático, polimorfismo ad-hoc):
- Implementado através de sobrecarga de funções e operadores.
- A seleção da função ou operador específico ocorre na fase de compilação.
// Exemplo de sobrecarga de funções void print(int a) { /* ... */ } void print(double b) { /* ... */ } -
Polimorfismo em tempo de execução (dinâmico, polimorfismo de subtipo):
- Implementado através de funções virtuais e ponteiros/links para a classe base.
- A seleção da função específica a ser chamada ocorre na fase de execução.
- Requer que haja pelo menos uma função virtual na classe base.
- Utiliza a tabela de funções virtuais (vtable).
// Exemplo de polimorfismo dinâmico class Base { public: virtual void show() { /* Implementação na classe base */ } }; class Derived : public Base { public: void show() override { /* Implementação sobrescrita */ } }; // Uso Base* ptr = new Derived(); ptr->show(); // Chama Derived::show()
O polimorfismo permite escrever código mais flexível e extensível, pois novas classes podem ser adicionadas sem alterar o código existente que trabalha com a classe base.