O que é uma classe virtual?

Uma classe virtual é uma classe que é alocada apenas uma vez na memória, de modo que os filhos dessa classe usam apenas a única cópia dessa classe pai que é estabelecida na memória. Uma classe é um grupo de objetos que compartilham características ou atributos comuns. Fazer uma classe virtual fornece linguagens de programação orientadas a objetos a capacidade de usar herança múltipla quando as classes parentais de segunda ou mais geração são derivadas de classes base ancestrais comuns. Dependendo da linguagem de programação do computador referenciada, a palavra-chave "virtual", a palavra-chave semelhante ou a sintaxe e a semântica de uma classe são usadas para sugerir que uma classe específica deve ser considerada virtual. Em uma linguagem de programação como o C ++, uma classe pode herdar todos os dados do membro e funções de membros de ambasDados e funções ONT. Outras línguas que suportam herança múltipla incluem Perl, Python, TCL e Eiffel.

Um problema ocorre em hierarquias de herança múltipla, quando duas ou mais aulas de pais usadas para criar uma classe infantil são originalmente derivadas de apenas uma ou da mesma classe de avós. Isso é chamado de problema de diamante, o nome decorrente de como a hierarquia ficaria nessa situação. Quando um programa do compilador tenta instanciar uma aula, como uma aula de neto feita de duas classes de pais com um avô comum, duas cópias do avô são feitas na memória, uma para cada pai.

Devido à ambiguidade causada por várias cópias do mesmo avô na memória, o compilador não consegue determinar qual cópia do avô o neto deve usar para acessar dados ou funções de avô. Para remediar essa situação, em C ++, o avô é transformado em uma virtaula de UAL Ao declarar os pais. Isso faz com que o compilador faça apenas uma cópia do avô na memória que ambos os pais compartilham. Uma vez que o avô se tornou uma classe virtual, o compilador não tem problemas para decidir como o neto deve acessar o avô, porque existe apenas uma cópia do avô.

Muito cuidado deve ser tomado ao estruturar hierarquias de classe, especialmente quando elas serão incluídas ou se tornarão a base para hierarquias muito maiores no futuro. A utilização adequada de uma classe virtual oferece hierarquias de classe maior latitude no desenvolvimento; No entanto, eles têm o potencial de causar erros difíceis de localizar. O estudo dos princípios de engenharia de programação de computadores sólidos ajudará a garantir que efeitos colaterais inesperados da organização imprópria do programa não ocorram.

OUTRAS LÍNGUAS

Este artigo foi útil? Obrigado pelo feedback Obrigado pelo feedback

Como podemos ajudar? Como podemos ajudar?