Linguagem C++
Da cppreference.com
< cpp
Isto é uma alusão pequena às construções disponíveis no C++
Índice |
[editar] Tópicos gerais
[editar] Controlo de fluxo
[editar] Instruções de execução condicional
Diferentes caminhos de código são executados de acordo com o valor da expressão fornecida
- if executa código condicionalmente
- switch executa código de acordo com o valor de um argumento inteiro
[editar] Instruções de iteração
O mesmo código é executado várias vezes
- for executa um ciclo
- while executa um ciclo, verificando uma condição antes de cada iteração
- do executa um ciclo, verificando uma condição depois de cada iteração
[editar] Instruções de salto
Continua a execução num local diferente
- continue ignora o restante código dentro do corpo do ciclo
- break termina o ciclo
- goto continua a execução num outro local
- return termina a execução da função
[editar] Funções
O mesmo código pode ser reutilizado em diferentes pontos do programa
- declarar funções
- especificações de exceções forçam a função a lançar apenas exceções específicas ou a não lançá-las de todo ( obsoleto)
- o especificador noexcept força a função a não lançar quaisquer exceções
- o especificador inline sugere ao compilador que insira o corpo de uma função directamente no local onde é chamada
[editar] Exceções
Exceções são uma maneira mais robusta de sinalizar condições de erro do que códigos de retorno de uma função ou variáveis globais de erro
- throw expression assinala um erro e transfere controlo ao handler de erro
- try-catch block apanha exceções vindas de segmentos específicos de código
[editar] Namespaces
Namespaces fornecem uma maneira de prevenir colisões de nomes em projectos grandes
[editar] Tipos
- tipos nativos definem os tipos básicos caracter, inteiro e vírgula flutuante
- tipos compostos definem tipos, guardando vários membros de (potencialmente) tipos diferentes
- tipos de função definem tipos, guardando um apontador para uma função
- o especificador decltype define um tipo, equivalente ao tipo de uma expressão (funcionalidade C++11)
[editar] Especificadores
- os especificadores cv especificam imutabilidade (const) e volatibilidade (volatile) de um tipo
- os especificadores storage duration especificam duração de armazenamento de um tipo
- o especificador constexpr especifica que o valor de uma variável ou função pode ser calculado em tempo de compilação (funcionalidade C++11)
- o especificador auto especifica que o tipo actual será definido a partir da expressão, atribuído à variável (funcionalidade C++11)
[editar] Operadores
- operadores permitem o uso de sintaxe normalmente encontrada na matemática
{{page>/br-pt/language/template_operator_groups}}
- precedência de operadores a ordem pela qual os operadores são avaliados
- representações alternativas nomes alternativos para alguns dos operadores
[editar] Utilitários
- conversões padrão conversões implícitas de um tipo para outro
- conversões explícitas conversões explícitas de um tipo para outro
- expressão new aloca memória dinamicamente
- expressão delete liberta memória dinamicamente
- declaração typedef cria um sinónimo para um tipo
- declaração type alias cria um sinónimo para um tipo
- atributos define informação adicional sobre uma variável (funcionalidade C++11)
[editar] Classes
Classes fornecem o conceito de programação Orientada a Objectos em C++
- declarar uma classe
- especificadores de acesso
- ignorar especificadores de acesso
- listas de inicialização
[editar] Funções membro especiais
- construtor por defeito inicializa o objecto com os conteúdos por omissão
- construtor de cópia inicializa o objecto com os conteúdos de outro objecto
- construtor move inicializa o objecto com os conteúdos de outro objecto temporário, minimizando o overhead de cópia (funcionalidade C++11)
- operador de atribuição substitui os conteúdos do objecto com os conteúdos de outro objecto
- operador move de atribuição substitui os conteúdos do objecto com os conteúdos de outro objecto temporário, minimizando o overhead de cópia (funcionalidade C++11)
- destrutor liberta recursos atribuídos ao objecto
[editar] Templates
Permite a funções e classes que trabalhem sobre tipos genéricos