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 2025

Vídeo: Curso de HTML5 - 09 - Imagens em HTML5 - by Gustavo Guanabara 2025
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

Noções básicas do arquivo de dados Flashback da Oracle 12c - dummies

Noções básicas do arquivo de dados Flashback da Oracle 12c - dummies

O Flashback Data Archive do oracle 12c é um mecanismo de banco de dados que permite que você para armazenar periodicamente ou indefinidamente todas as versões de linha em uma tabela ao longo da sua vida útil. Você pode então escolher uma hora para ver os dados como existia em um ponto específico. Esteja ciente de que o Flashback Data Archive é um recurso licenciado. ...

Noções básicas de clusters de aplicativos reais do Oracle 12c - manequins

Noções básicas de clusters de aplicativos reais do Oracle 12c - manequins

Se você visitou os sites da Oracle nos últimos 12 anos , você viu o byline de marketing: "Inquebrável. "Essa linha de tag refere-se ao recurso Real Application Clusters (RAC). Claro, muitos elementos estão envolvidos, mas o RAC tem o destaque. O RAC é a solução de clustering de banco de dados Oracle. Em certo sentido, funciona na teoria de que ...

Noções básicas de Redo Log Files no Oracle 12c - dummies

Noções básicas de Redo Log Files no Oracle 12c - dummies

Redo os arquivos de log armazenam as informações do buffer de log no banco de dados Oracle 12c. Eles são escritos pelo Log Writer (LGWR). Mais uma vez, você não pode ler esses arquivos binários sem a ajuda do software de banco de dados. Normalmente, os arquivos de reto de log são nomeados com a extensão. LOG ou. RDO. Pode ser qualquer coisa que você queira, ...

Escolha dos editores

São orgasmos ok durante a gravidez? - Dummies

São orgasmos ok durante a gravidez? - Dummies

As mulheres grávidas não só têm permissão para fazer sexo, mas muitas vezes o desejam. Mas é bom aproveitar a relação sexual com o ponto do orgasmo? Afinal, os orgasmos são nada mais do que contrações - e as pessoas sugeriram que isso poderia desencadear mão-de-obra. Isso é apenas um mito. De fato, grávida ...

Alimentando a Multidão em uma Reunião Familiar - manequins

Alimentando a Multidão em uma Reunião Familiar - manequins

Cozinhando uma refeição para um grande grupo (reunião familiar ou de outra forma ) requer planejamento e resistência. Aqui está um guia útil para quantidades de alimentos e segurança alimentar, e conselhos sobre a organização de uma festa de potluck. Planejando para potlucks A forma mais comum de comestibles de grupo é uma festa de potluck - qual é a maneira mais barata e fácil de ...

Anatomia do Penis humano - dummies

Anatomia do Penis humano - dummies

Sabendo como as funções de um pénis podem fornecer uma visão útil do sexo e do corpo humano - se você quer entender o pénis e a anatomia masculina melhor ou aprender sobre isso pela primeira vez. Basicamente, um pênis é composto de três estruturas, que são feitas de um material esponjoso que pode preencher com sangue: ...

Escolha dos editores

Como lidar com outliers causados ​​por Forças externas - manequins

Como lidar com outliers causados ​​por Forças externas - manequins

Certifique-se de verificar atentamente os outliers antes eles influenciam sua análise preditiva. Os outliers podem distorcer a análise de dados e dados. Por exemplo, qualquer análise estatística feita com dados que deixa outliers no lugar acaba por desviar os meios e variâncias. Os outliers não controlados ou mal interpretados podem levar a conclusões falsas. Diga os seus dados que ...

Como criar um modelo de análise preditiva com regressão R - manequins

Como criar um modelo de análise preditiva com regressão R - manequins

Você deseja criar um preditivo modelo de análise que você pode avaliar usando resultados conhecidos. Para fazer isso, vamos dividir nosso conjunto de dados em dois conjuntos: um para treinar o modelo e outro para testar o modelo. Uma divisão 70/30 entre treinamento e testes de conjuntos de dados será suficiente. As próximas duas linhas de código ...

Como definir objetivos de negócios para um modelo de análise preditiva - dummies

Como definir objetivos de negócios para um modelo de análise preditiva - dummies

Um modelo de análise preditiva visa resolvendo um problema comercial ou realizando um resultado comercial desejado. Esses objetivos comerciais se tornam os objetivos do modelo. Conhecer aqueles garante o valor comercial do modelo que você constrói - o que não deve ser confundido com a precisão do modelo. Hipotéticamente, você pode construir um modelo preciso para ...