Lar Finanças Pessoais Como o polimorfismo funciona em C ++ - dummies

Como o polimorfismo funciona em C ++ - dummies

Vídeo: Tutorial Herança, Sobrecarga e Polimorfismo em C++ pt-BR 2024

Vídeo: Tutorial Herança, Sobrecarga e Polimorfismo em C++ pt-BR 2024
Anonim

Como um straddler de cerca, o C ++ suporta ligação inicial e adiantada. Qualquer linguagem de programação dada pode suportar ligação inicial ou antecipada com base nos caprichos de seus desenvolvedores. Linguagens mais antigas, como C, tendem a suportar apenas a ligação inicial. Linguagens recentes, como Java e C #, suportam apenas ligações tardias.

Você pode se surpreender que o padrão para C ++ seja vinculativo inicial. A saída do programa OverloadOverride da maneira como ele aparece é a seguinte:

Estamos em Estudante:: calctação Estamos em Estudante:: calctação Pressione Enter para continuar …

O motivo é simples, se um pouco datado. Primeiro, o C ++ tem que atuar tanto como o C quanto possível por padrão para manter a compatibilidade ascendente com o antecessor. Em segundo lugar, o polimorfismo adiciona uma pequena quantidade de sobrecarga a cada chamada de função tanto em termos de armazenamento de dados quanto de código necessário para executar a chamada.

Os fundadores do C ++ estavam preocupados com o fato de que qualquer sobrecarga adicional seria usada como motivo para não adotar o C ++ como a linguagem de escolha do sistema, de modo que eles tornaram o vínculo inicial mais eficiente ao padrão.

Para tornar um membro função polimórfico, o programador deve sinalizar a função com a palavra-chave C ++ virtual, como mostrado na seguinte modificação na declaração no OverloadOveride < programa: classe Estudante {público: virtual void calcTuition () {cout << "estamos em Student:: calcTuition" << endl;}};

A palavra-chave

virtual que informa C ++ que calcTuition () é uma função de membro polimórfico. Ou seja, declarar que calcTuition () virtual significa que as chamadas para ele serão vinculadas tarde se houver alguma dúvida quanto ao tipo de tempo de execução do objeto com o qual calcTuition () é chamado.

Executando o programa OverloadOveride com calcTuition () declarado virtual gera a seguinte saída: Estamos no Student:: calcTuition Estamos em GraduateStudent:: calcTuition Press Digite para continuar …

Se você estiver confortável com o depurador que vem com o seu ambiente C ++, você realmente deve passar por um único passo neste exemplo. É tão legal ver o programa em uma única etapa em Student:: calcTuition () pela primeira vez que fn () é chamado, mas em GraduateStudent:: calcTuition () na segunda chamada. Você não pode realmente apreciar o polimorfismo até que você o tenha tentado.

Você precisa declarar a função virtual somente na classe base. A "virtualidade" é carregada automaticamente para a subclasse. Às vezes, no entanto, os programadores seguem o padrão de codificação de declarar a função virtual em todos os lugares (praticamente).

Como o polimorfismo funciona em C ++ - dummies

Escolha dos editores

Filmando fotos em situações especiais com Canon Rebel Série T3 Câmeras - manequins

Filmando fotos em situações especiais com Canon Rebel Série T3 Câmeras - manequins

ÀS vezes haverá não há problema em tirar o seu Canon Rebel T3 ou T3i fora e tirar fotos com configurações automáticas. A maior parte do tempo, você pode fazer com alguns ajustes simples. Alguns assuntos e situações de filmagem apresentam alguns desafios adicionais que exigem combinações de configurações mais complicadas. ...

Escolha dos editores

Obtendo o WordPress. org Software - dummies

Obtendo o WordPress. org Software - dummies

Depois de classificar seu host e domínio do site, você deve baixar e extrair os arquivos do WordPress pela WordPress. org e colocá-los no seu computador. Escolha um lugar que você lembrará, como um diretório de Documentos ou Download. Siga estas etapas: aponte seu navegador para o WordPress. org. A página principal do WordPress aparece. Clique em ...

Google AdSense para Bloggers de Mom - dummies

Google AdSense para Bloggers de Mom - dummies

Google O AdSense não é uma rede de anúncios orientada para a mãe, nem é A melhor opção de publicidade para a maioria dos blogs da mãe. Há certamente exceções a isso, especialmente se você blogar sobre produtos ou marcas. Todos os blogueiros que exibem publicidade devem ter um provedor de anúncios de backup - e o AdSense é uma ótima solução para essa necessidade. AdSense aprova ...

Relatório de conteúdo principal do google Analytics - dummies

Relatório de conteúdo principal do google Analytics - dummies

O relatório Top Content é um dos relatórios mais importantes no Google Analytics. Este relatório mostra as postagens mais populares no blog da sua mãe. Seu conteúdo popular dá uma visão do porquê seus leitores chegam até você. Os tópicos dessas postagens indicam o que as pessoas gostam, mesmo quando não comentam. Para visualizar ...

Escolha dos editores

Como fazer uma imagem disparar um link - as manequins

Como fazer uma imagem disparar um link - as manequins

Usam imagens para navegação . Eles são mais bonitos que os links de texto simples, e você pode adicionar a forma e a função na sua página com um elemento. Para criar uma imagem que desencadeia um link, você substitui um elemento no lugar do texto ao qual você ancoraria seu link. Esta marcação liga o texto: ...

Como abrir links em novos Windows ou Tabs com HTML5 - dummies

Como abrir links em novos Windows ou Tabs com HTML5 - dummies

O A web funciona porque você pode vincular páginas em seu site para páginas nos sites de outras pessoas usando um elemento de âncora simples. Quando você liga para o site de outra pessoa, você envia usuários para longe de seu próprio site. Para manter os usuários no seu site, HTML pode abrir a página vinculada em uma nova janela ...

Como criar tabelas em HTML5 - dummies

Como criar tabelas em HTML5 - dummies

O recipiente de marcação primária para tabelas em HTML é a tabela elemento. Ou seja, você usa a tag de abertura para denotar o início de uma tabela e você adiciona a tag de fechamento para encerrá-la. Além disso, os blocos de construção básicos para dados de tabela em HTML são a linha da tabela ( ) e os dados da tabela ...