Função virtual pura em C ++

Função virtual pura em C ++
Uma função virtual pura na linguagem de programação C ++ é um conceito amplamente conhecido na herança C ++. Esta função virtual pode ser usada na classe abstrata. Só pode ser declarado na classe abstrata, e não pode ser definido. O valor da declaração para a função virtual pura é 0. Assim, este artigo é implementado para determinar como a função virtual pura pode ser declarada na classe base e definida na classe derivada.

Nota: O sistema operacional usado neste tutorial é o Ubuntu 20.04. Você pode usar outras distritos Linux ou sistemas Windows. O compilador G ++ foi usado para a implementação de exemplos.

Exemplo 01

Estamos começando com um exemplo simples para ilustrar o trabalho e a estrutura geral de uma função virtual pura na classe abstrata C ++. Você precisa saber que uma classe abstrata não ocupa nenhum objeto, eu.e., não instanciado. No entanto, podemos usar ponteiros ou referências para acessar esta classe e suas funções. Portanto, crie um novo arquivo C ++ com a ajuda do “tocar”Consulte e abra -o com um editor, como o Nano Editor.

$ toque puro.cc
$ nano puro.cc

Cada código C ++ começa com o cabeçalho do fluxo de entrada e saída incluído nele. O nomes do espaço -nomes deve ser declarado depois disso. Uma classe abstrata foi inicializada chamada "pai". Ele contém uma única declaração de função virtual pura chamada “mostrar()”. Esta função pura foi inicializada com 0. A classe derivada chamada “Criança”Foi inicializado. Esta classe infantil está acessando a classe pai enquanto a usa como uma interface. A classe infantil contém a definição de um método show (). O método show () tem exibido algum texto com o “cout"Cláusula. Aqui vem o método principal (). Todo o trabalho deve começar a partir daqui:

No início de um método main (), o ponteiro da classe pai “*p" foi criado. Como a classe pai é abstrata, não podemos criar seu objeto. A classe infantil foi iniciada com o objeto “c”. O ponteiro “*p”Da classe dos pais tem acessado o endereço do objeto de classe infantil“c”. Então o ponteiro “*p"Está chamando a função virtual pura"mostrar()”Por uma referência. Depois de salvar o código virtual puro C ++, compile -o com o pacote do compilador G ++. Nenhum erro foi encontrado até agora. Depois de executar o arquivo, obtivemos a seguinte saída:

$ g ++ puro.cc
$ ./a.fora

O resultado desta ilustração pode ser analisado na imagem em anexo acima.

Exemplo 02

Vejamos outro exemplo de usar uma função virtual pura em C++. Faremos alguns cálculos matemáticos no método virtual puro. Então, comece abrindo o mesmo arquivo e modifique -o um pouco. Adicione o pacote de cabeçalho do fluxo de entrada e saída e use o espaço de nome padrão no código também. Declaramos uma classe abstrata chamada “Resultado”Após o espaço para nome. Esta classe contém uma variável do tipo inteiro protegido chamado “pontuação”Usado para obter marcas do usuário.

Um método simples de tipo público foi definido na classe abstrata chamada “getScore ()”. O "cout”A cláusula neste método exige que o usuário insira alguma pontuação. As funções receberiam as marcas do usuário como entrada através do “CIN"Cláusula. Então, a função virtual pura “percentagem()”É declarado para 0 aqui. A classe derivada “Status”Está definido para obter a porcentagem do aluno acessando a classe pai como uma interface. A classe infantil “status” contém a definição de um método virtual puro “percentagem()" iniciar:

A porcentagem de função virtual pura () está calculando a porcentagem de marcas de alunos. Essa porcentagem é encontrada com a ajuda de uma fórmula percentual usando as marcas de um aluno. As marcas foram obtidas pela variável “pontuação”Ter notas inseridas pelo usuário. A função principal () contém a criação de objetos da classe infantil. Este objeto é usado para chamar o método getScore () para adquirir notas do usuário. O mesmo objeto é usado para chamar a função de porcentagem () para calcular a porcentagem de marcas inseridas pelo usuário.

Vamos salvar o código primeiro e sair do arquivo usando “Ctrl+s" e "Ctrl+s”, Respectivamente.

Depois de voltar ao terminal, compila o código primeiro com o pacote do compilador G ++. Depois disso, execute o arquivo com o “a.fora" consulta. Isso solicitará que você insira suas marcas. Adicionamos três marcas diferentes em todas as execuções e obtivemos três porcentagens diferentes todas as vezes.

$ g ++ puro.cc
$ ./a.fora

O resultado desta ilustração pode ser analisado na imagem em anexo acima.

Conclusão

Finalmente, usamos os exemplos de usar uma função virtual pura na classe abstrata C ++. Usamos classes abstratas e derivadas para ilustrar o conceito de função virtual pura. Com base nas informações fornecidas, acreditamos que será fácil para você trabalhar em funções virtuais puras a partir de agora. Obrigado por ler este artigo e confira os outros artigos fornecidos pela Linuxhint.com.