Lar Finanças Pessoais 8 C ++ Características não-tão-iniciantes - manequins

8 C ++ Características não-tão-iniciantes - manequins

Índice:

Vídeo: Curso de HTML5 - 09 - Imagens em HTML5 - by Gustavo Guanabara 2024

Vídeo: Curso de HTML5 - 09 - Imagens em HTML5 - by Gustavo Guanabara 2024
Anonim

A linguagem C ++ contém tantos recursos que os programadores iniciantes não podem entender cada um. Felizmente, você não precisa dominar todos os recursos do idioma para escrever grandes programas do mundo real. Os seguintes são dez recursos que você pode querer olhar para frente, apenas no caso de você vê-los nos programas de outras pessoas.

O comando C ++ goto

Este comando vai todo o caminho de volta para C, o progenitor de C ++. Em princípio, usar esse comando é fácil. Você pode colocar o rótulo goto; onde você quiser. Quando C ++ se depara com este comando, o controle passa imediatamente para o rótulo, conforme demonstrado neste fragmento de código:

para (;;) {if (expressão condicional) {goto outahere;} // … o que você quiser …} outahere: // … o programa continua aqui …

Na prática, no entanto, goto apresenta muitas maneiras de estragar. Em qualquer caso, não demorou muito para que os programadores percebessem que os dois usos mais comuns do goto eram para sair de loops e para o próximo caso em um loop. O Comitê de Normas C introduziu interrupção e continuação e quase completamente removido a necessidade do comando goto.

O operador ternário C ++

O operador ternário é um operador exclusivo para C e C ++. Funciona da seguinte forma:

int n = (condicional)? expression1: expression2;

O? O operador primeiro avalia o condicional. Se a condição for verdadeira, o valor da expressão é igual ao valor da expressão1; De outra forma, é igual ao valor da expressão2.

Por exemplo, você pode implementar uma função máxima () da seguinte maneira:

int max (int n1, int n2) {return (n1> n2)? n1: n2;}

O operador ternário pode ser aplicado a qualquer tipo de numérico, mas não pode ser sobrecarregado. O operador ternário é verdadeiramente uma expressão - não uma declaração de controle como uma if.

Tipos enumerados em C ++

A idéia simples é que você pode definir constantes e permitir que C ++ atribua valores, como mostrado aqui:

enum Cores {PRETO, AZUL, VERDE, AMARELO, VERMELHO}; Cores myColor = PRETO;

O problema com os tipos enumerados reside na implementação: em vez de criar um tipo verdadeiro, o C ++ usa inteiros. Nesse caso, BLACK é atribuído o valor 0, BLUE é atribuído 1, GREEN2 e assim por diante.

A Biblioteca Padrão 2011 para C ++ "corrigiu" esse problema, criando um tipo de classe enumerado, conforme mostrado no seguinte trecho:

classe de enum {{{{{{{{{{{{{{{{{{{; Cores myColor = Cores:: PRETO;

Nesta versão, Cores é um novo tipo.Cada uma das constantes, PRETO, AZUL, e assim por diante, são membros do tipo Cores. Você ainda pode lançar um objeto de classe Cores em um int, mas não é permitido um elenco implícito.

namespaces C ++

É possível atribuir diferentes entidades em duas bibliotecas diferentes o mesmo nome. Por exemplo, a função grade () dentro da biblioteca Student provavelmente atribui uma nota, enquanto a função grade () dentro da biblioteca CivilEngineering pode definir a inclinação no lado de uma colina. Para evitar esse problema, C ++ permite que o programador coloque seu código em um namespace separado. Assim, o grau dentro do espaço para nome do Estudante é diferente do grau dentro do CivilEngineering.

O namespace está acima e além do nome da classe. A função de membro grade () da classe BullDozer no namespace CivilEngineering tem o nome expandido CivilEngineering:: BullDozer:: grade ().

Todos os objetos e funções da biblioteca estão no namespace std. A declaração no início do modelo do programa usando namespace std; diz que se você não vê o objeto especificado no namespace padrão, então vá procurar no std.

Funções virtuais puras em C ++

Você não precisa definir uma função declarada virtual. Essa função indefinida é conhecida como uma função de membro virtual puro . Naquele momento, no entanto, as coisas ficam complicadas. Por exemplo, uma classe com uma ou mais funções virtuais puras é dita abstrata e não pode ser usada para criar um objeto. Ligue este assunto depois de se sentir confortável com funções virtuais e ligação tardia.

A classe de seqüência de caracteres C ++

A maioria dos idiomas inclui uma classe de string como um tipo intrínseco para lidar com strings de caracteres facilmente. Em teoria, a classe string deve fazer o mesmo para C ++. Na prática, no entanto, não é assim tão simples. Como a string não é um tipo intrínseco, as mensagens de erro que o compilador gera quando algo dá errado são mais semelhantes às associadas a classes definidas pelo usuário. Para um iniciante, essas mensagens podem ser muito difíceis de interpretar.

string não é mesmo uma classe. É uma instância de uma classe de modelo. As mensagens de erro podem ser de tirar o fôlego.

Herança múltipla em C ++

Uma classe pode realmente estender mais do que uma classe base. Isso parece simples, mas pode ser bastante complicado quando as duas classes base contêm funções de membros com o mesmo nome. Pior ainda é quando ambas as classes base são subclasses de alguma classe comum.

Na verdade, tantos problemas surgem que o C ++ é o único idioma semelhante a C que suporta múltiplas heranças. Java e C #, ambos os idiomas derivados de C ++, decidiram soltar suporte para múltiplas heranças.

Modelos de C ++ e a Biblioteca de modelos padrão

Os fabricantes de C ++ notaram como funções semelhantes, como as seguintes:

int max (int n1, int n2) {if (n1> n2) {return n1;} retorno n2;} duplo máximo (duplo n1, duplo n2) {if (n1> n2) {return n1;} return n2;} char max (char n1, char n2) {if (n1> n2) {return n1;} return n2;}

"Não seria legal", diz um outro, "se você pudesse substituir o tipo por um tipo de pseudo-tipo que você poderia definir no tempo de compilação?"Antes de conhecê-lo, os modelos presto - se tornam parte do modelo C ++:

T max (T t1, T t2) {se (t1> t2) {retornar t1;} retornar t2;}

Agora o programador pode crie um max (int, int) substituindo T por int e compilando o resultado, crie um máximo (duplo, duplo), substituindo T por duplo e assim por diante. O Comitê de Padrões até lançou uma biblioteca inteira de classes, conhecida como Biblioteca de Modelo Padrão (STL para abreviar), com base em classes de modelo.

Para um iniciante, no entanto, o assunto das classes de modelo começa a ficar sintaticamente muito complicado. Além disso, os erros que o compilador gera quando você cria uma instanciação de modelo errado são desconcertantes para um especialista, não se preocupe com um iniciante. Este é definitivamente um tópico que precisa esperar até se sentir confortável com a linguagem básica.

8 C ++ Características não-tão-iniciantes - manequins

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 ...