next up previous contents
Next: Gabaritos Up: Polimorfismo Previous: Funções virtuais   Sumário

Funções virtuais puras e classes abstratas

Há situações em que a é desejável garantir que todas as classes derivadas de uma determinada classe base suportassem um dado método. Entretanto, algumas vezes a classe base não tem informação suficiente para permitir alguma definição para uma função virtual. Para estes casos, C ++ suporta o conceito de funções virtuais puras.

Uma função virtual pura não tem nenhuma definição dentro da classe base. Para declarar uma função virtual pura, usa-se a forma

virtual tipo nome_função (lista-args) = 0;

Quando uma função virtual é feita pura, qualquer classe derivada deve fornecer sua própria definição. Caso contrário, um erro de compilação será acusado.

Classes que contenham pelo menos uma função virtual pura são chamadas de classes abstratas. Como uma classe abstrata contém um ou mais métodos para os quais não há definição (as funções virtuais puras), objetos não podem ser criados a partir de classes abstratas. Pode-se dizer que uma classe abstrata é a definição de um tipo incompleto, que serve como fundação para classes derivadas.

Objetos não podem ser criados para classes abstratas, mas apontadores para classes abstratas são válidos. Isto permite que classes abstratas suportem polimorfismo em tempo de execução.


next up previous contents
Next: Gabaritos Up: Polimorfismo Previous: Funções virtuais   Sumário
Ivan Luiz Marques Ricarte 2001-06-01