Pascal
ASP
PHP
C++
VB.net
C#
Java
AC/DC
Artigos
Links
Currículo
Home

C++ - Guia de referência completo

O compilador que irei usar é o Dev-C++ para pdj. Vocês podem pegar no site www.pdj.com.br. (sessão downloads ) - ler em ordem numérica

Os tutoriais são separados por ordem numérica e por ordem de aprendizagem, alguns números podem estar no final da página, sempre siga a ordem!

1 • Introdução

2 • As Bibliotecas

3 • Primeiro Programa

4 • Digitando e guardando dados em variáveis

5 • Iniciando Variáveis

6 • Extruturas de Controle

7 • Operadores

 

9 • Manipulando Dados Parte 1

10 • Tipos de Dados e Converções

11 • Funções Geral

13 • Classe de Armazenamento e Regras de Escopo

15 • In Line

16 • Argumento Default em funções

18 • Operador unário de resolução de Escopo

 

19 • Templates de Funções ( gabaritos )

20 • Array Parte 1 ( matrizes )

21 • Constantes e Strings

22 • Passando Arrays para Funções

26 • Array Parte 2 ( Multidimensionais )


27 • Ponteiros

28• Sizeof

29• Ponteiro de Funções

30• Manipulação de Strings


31• Struct

32• Classes

33• Separando a Interface da Implementação

34• Construtores e Destruidores

35• Classes Parte2 - Copia de membros por default e Classe por referência

36• Classes e Const

37• Interação entre Classes

38• Funções Friends

39• Usando o Ponteiro This

 

40• Alocação Dinâmica de Memória

41• Sobrecarga de Operadores

42• Herança

43• Fazendo coerção de ponteiros da classe base para ponteiros da classe derivada

44• Herança Múltipla

45• Polimorfismo

46• Entrada e Saida de Streams

Entrada e saída com streams em C++
Funções membro peek, putback e ignore de Istream
E/S não-formatada com read, gcount e write
Precisão em ponto flutuante ( precision, setprecision )
Criando Manipuladores
Estados de formato do stream
Estados de Erro do stream
Vinculando um stream de saída a um stream de entrada


47• Gabaritos

Gabaritos
Sobrecarregando Gabaritos
Gabaritos de Classes
Gabaritos de classe e parâmetros não-tipo
Gabaritos e Herança
Gabaritos e friends
Gabaritos e membros static

49• Tratamento de Erros

Disparando novamente uma exceção
Processando falhas de New
A classe auto_ptr e a alocação dinâmica de memória
Hierarquia de exceções da biblioteca padrão


50• Arquivos de Acesso Sequencial

51• Arquivos de Acesso Aleatorio

52• Funções para tratamento de Strings

53• Namespaces - Ambientes de nomes

54• RTTI - Informação sobre tipo durante a execução

55• Construtores Explicit

56• Herança Multipla Virtual

 


8 • Exercícios 1

12 • A Função Random

14 • Recursão

17 • Alias em C++

19 • Sobrecarga de Funções


23 • Ordenando Arrays - Bolha ou Bubble Sort

24 • Pesquisa Linear

25• Pesquisa Binária

48• Pilha


Lista de Comandos

std::cout Escreve na tela
\n Nova linha
\t Tabulação
\r Retorno do Carro
\a Sinal de Aleta
\\ Barra Inversa
\" Aspas.
std::cin Obtem entrada de stream
std::endl Final da Linha
// Comentários
+ = * / % Sinais Aritméticos, % representa mod
*variavel Ponteiro
== Igual
= Atribuição
< Menor
> Maior
!= Diferente
std::ios Classe de vários outros comandos de iostream
std::setprecision Precisão de Digitos na saída de um numero, em decimais.
std::setiosflags Manipulador de formatação de saídas de números
ios::fixed Fixa um número ponto flutuante de forma científica
ios::showpoint Mostra o ponto em um ponto flutuante

Especifica que um número flutuante deve ser mostrado na saida com um ponto decimal. É usado normalmente ios::fixed para garantir que um certo numero de digitos a direita do ponto decimal )
static_cast< tipo > ( ) Cria uma cópia temporária e converte para o tipo especificado em tipo
++ e -- Incremento e Decremento
std::setw Quantidade total de casas para a saída
break Altera o fluxo de controle para saída imediata
continue Altera o fluxo de controle para continuar os comandos
&& e lógico
|| or lógico
ceil() arredonda para o menor inteiro
cos() coseno aritmetico
exp() Função exponencial
fabs() Valor absoluto
floor() arredonda para o maior inteiro
fmod( x, y ) resto de x/y de numeros flutuantes
log() logaritmo base 10
pow(x, y) elevado a pontencia de y
sin() seno trigonométrico de x em radianos
sqrt() raiz quadrada ( lib cmath )
tan() Tangente trigonométrico de x em radianos
srand() Semente para o rand
rand() Gera numeros randomicos
RAND_MAX Ultimo número randomico possivel - 32767
std::time Com zero representa a hora atual
enum Tipo definido pelo usuario.
auto Classe de armazenamento automatico, váriaveis normais
register Classe de armazenamento que mantém a variáveis em hardware de alta velocidade
static Variáveis static conservam seus valores quanto a função é terminada
extern Variáveis externas globais
:: escopo, podemos acessar variáveis globais com ele
inline Gera uma cópia do código da função ( pode tornar o programa maior )
& retorna o caminho da memória de uma variavel
template Usado para fazer gabaritos de funções
*variavel Ponteiro
\0 Final de uma string
const Variável constante

islower()

Retorna true se o caracter for minúsculo
toupper() Se o caracter for uma letra minúscula, retorna o número de uma maiúscula
sizeof Determina o tamanho em bytes de qualquer tipo de dado
assert Da biblioteca cassert, para alocação dinâmica, testa se funciona, retornando true ou false(0), se false, mostra um erro e a linha para analize!
hex Stream que tranforma um numero para hexadecial ( cout << hex << num )
dec Stream que tranforma um numero para decimal ( cout << dec << num )
oct Stream que tranforma um numero para octal ( cout << oct << num )
setw Stream que especifica o tamanho de espaço que uma string vai ter. Pode ser usado cout.width também
cout << std::setw(10) << places << endl;
cout.width(30);
cout << places << endl;
ios::skipws Ignora espaços em branco em uma stream de entrada
ios::left
Justifica à esquerda a saída em um campo
ios::right Justifica a direita
ios::internal Indica que o sinal de um número deve ser alinha do esquerda em um campo e a magnitude do número deve ser alinhada a direita nesse mesmo campo
ios::showbase Especifica que a base de um número deve ser mostrada à frente do número na saída ( um 0 à esquerda oara octais. um 0x ou 0X para hexadecimais ).
ios::uppercase Especifica letras maiúsculas.
ios::setiosflags( ios::uppercase )
ios::showpos Mostra o sinal na frente de um número ( + e - )
ios::scientific Mostra saida de números em notação cientifica
ios::fill Especifica caracteres de enchimento para serem usados como um justificador
ios::fill( '*' );
cout.flags( originalFormat ) Retorna para o formado de flags original
   
extern int numero

Indica ao compilador que a variavel numero está definida em outro arquivo do programa.

Também pode ser usada para dizer a um programa C++ que a função foi especifica em C.
extern "C" nome_da_funcao // para uma única função
extern "C" { } // para várias funções

valatile São variáveis que podem vir a ser alterada de fora do programa
u - U Constante sufixo que especifica um int
Exemplo: int a = 174u
U para Unsigned
l - L Constante sufixo que especifica um long
Exemplo: long a = 17455l
ul Constante sufixo que especifica um unsigned long
Exemplo: unsigned long a = 17455ul
f Sufixo para float
L Sufixo para long double ( 3.1233L )
union Uma union é declarada como uma struct, e todas as variáveis dentro dela são alocadas no mesmo espaço de memória. Em codigos C ele é bastante usado. Se uma união possui duas(tres, quatro, cinco... ) variáveis, apenas uma delas pode ter um valor por vez.
const_cast

Cast que retira const do ponteiro this.
Exemplo: const_cast< ConstCastTest * >( this )->variavel--;

Usar ele em funções de classes que sejem declaradas como const ( onde não se pode alterar nada dentro da função )

explicit Qualificador de um construtor que diz que aquele construtor não pode ser usado para conversão implicita
mutable Tipo de dados definido em classes que pode ser alterado mesmo em um função const que não pode alterar dados. ( Ex: mutable int valor )
   

#include <cctype>

int isdigit( int c ) Retorna se c é um digito
int isalpha( int c ) Retorna se c é uma letra
int isalnum( int c ) Retorna se c é um digito ou uma letra
int isxdigit( int c ) Retorna se c é um caracter hexadecimal
int islower( int c ) Retorna se c é uma letra minuscula
int isupper( int c ) Retorna se c é uma letra maiuscula
int tolower( int c ) Retorna c como uma letra minuscula
int toupper( int c ) Retorna c como uma letra maiuscula
int isspace( int c ) Retorna se é um espaço, nova linha (\n), avanço de formulário (\f), retorno do carro (\r), tabulação (\t), tabulação vertical (\v)
int iscntrl( int c ) Retorna se c é um caracter de controle
int ispunct( int c ) Retorna se c é um caracter diferente de espaço ou digito
int isprint( int c ) Retorna se c é um caracter de impressão
int isgraph( int c ) Retorna se c é um caracter de impressão diferente de espaço

include <cstring>

double atof( const char *p ) Converte o string p para double
int atoi( const char *p ) Converte o string p para int
long atol( const char *p ) Converte o string p para long int
double strtod( const char *p, char **endP ) Converte para double
unsigned long strtoul( const char *p, char **endP, int b ) Converte para unsigned long
   
char *strchr( const char *s, int c ) Localiza a primeira ocorrência do caracter c no string s, se c é encontrado, um ponteiro para c em sé retornado. Caso o contrário o ponteiro retornado será Null.
char *strrchr( const char *s, int c ) Localiza a última ocorrência do caracter c no string s, se c é encontrado, um ponteiro para c em sé retornado. Caso o contrário o ponteiro retornado será Null.
size_t strspn( const char *sp1, const char *s2 ) Determina e retorna o comprimento do segmento inicial do string s1 consistindo somente em caracteres contidos no string s2
char *strpbrk( const char *s1, const char *s2 ) Localiza a primeira ocorrência no string s1 de qualquer caractere no string s2. Se um caracter do string s2 é encontrado, é retornado um ponteiro para o caractere no string s1. Caso o contrário o ponteiro retornado será Null.
size_t strcspn( const char *s1, const char *s2 ) Determina e retorna o comprimento do seguimento inicial do string s1 que consiste em caracteres não contidos no string s2;
char *strstr( const char *s1, const char *s2 ) Localiza a primeira ocorrência no string s1 do string s2. Se o string é encontrado, um ponteiro para o string em s1 é retornado. Caso o contrário o ponteiro retornado será Null.
   
void *memcpy( void *s1, const void *s2, size_t n ) Copia n caracteres do objeto apontado por s2 para o objeto apontado por s1. Retorna um ponteiro para o objeto restante.
void *memmove( void *s1, const void *s2, size_t n ) Copia n caracteres do objeto apontado por s2 para o objeto apontado por s1. A cópia é executada como se os caracteres fossem primeiro copiados do objeto apontado por s2 para um array temporário e, então, do array temporário para o objeto apontado por s1. É retornado um ponteiro para o objeto restante.
void *memchr( const void *s, int c, size_t n ) Localiza a primeira ocorrência de c( convertido para unsigned char ) nos primeiros n caracteres do objeto apontado por s. Se c é encontrado, é retornado um ponteiro para o objeto c.
void *memset( void *s, int c, size_t n ) Copia c( convertido para unsigned char ) para os primeiros n caracteres do objeto apontado por s. Retorna um ponteiro para o resultado