(Parte 1 de 3)

nov/2004 Renato Maia 1

A Linguagem C++

Renato Maia maia@inf.puc-rio.br

TeCGraf/PUC-Rio

Renato Maia 2nov/2004

Hello, World! #include <iostream> int main()

{ std::cout<< "Hello, world!" << "\n"; nov/2004 Renato Maia 3

MÓDULO I Recursos Básicos

Renato Maia 4nov/2004

Recursos Básicos nParte 1:

¤ Tipos ¤ Declarações

¤ Ponteiros

¤ Vetores ¤ Estruturas

¤ Operadores

¤ Expressões ¤ Comandos

¤ Funções n Exemplo ¤ Calculadora nParte 2:

¤Espaços de Nomes ¤Compilação e Ligação nov/2004 Renato Maia 5 Tipos

Renato Maia 6nov/2004

Tipo Lógico nTipo: bool nLiterais: true, false n Conversões:

¤0 Łfalse

Renato Maia 7nov/2004

Tipo Caractere nTipo: char nModificadores: signed, unsigned

¤Letras: 'a', 'b',, 'Z'
¤Algarismos: '0', '1',, '9'

¤Números: 97 // o 'a' na tabela ASCII

Renato Maia 8nov/2004

Tipo Inteiro nTipo: int n Modificadores:

¤signed, unsigned ¤short, long n Literais:

¤Decimal: 20 ¤Octal: 020

¤Hexadecimal: 0x20f

Renato Maia 9nov/2004

Tipos Reais nTipos: float, double nModificadores: long(aplicável ao double) nLiterais: (não podem conter espaços)

¤ 1.23e10

Renato Maia 10nov/2004

Tipo Vazio nTipo: void n Uso:

¤Como tipo de retorno de uma função nDefine funções que não retornam valores

¤Como tipo de ponteiro nDefine um ponteiro para tipo indefinido (ponteiro genérico)

Renato Maia 11nov/2004

Enumerações n Exemplo:

enumDiaSem{ DOM, SEG, TER, QUA, QUI, SEX, SAB }; n Uso

¤Definir um tipo que assume um conjunto de valores inteiros pré-definidos (enumerados).

nov/2004 Renato Maia 12 Declarações

Renato Maia 13nov/2004

Declarações

Especificador Tipo Declarador Iniciação/Definição char ch ; string s ; intcount= 1; const double pi = 3.1415926535897932385 ; extern int error_number ; constchar* name= "Najla"; constchar* season[ ]= {"spring","summer", "fall","winter}; structDate{ intd, m, y }; intday(Date* p){ returnp->d; }; double sqrt(double) ; template<classT> Tabs(T a){ returna<0 ? –a : a; } typedef list<int> SmallNums ; struct User ; enumBeer{ Carlsberg, Tuborg, Thor}; namespaceNS{ inta; };

Renato Maia 14nov/2004

Declarações (observações) nDeclaração com vários nomes ¤inta, b = 0;// apenas o 'b' é iniciado.

¤int* pa, pb;// o 'pb' NÃO é um ponteiro.

nNomes de identificadores

¤hello, DEFINED, var23, _123, _, um_nome_razoavelmente_GRANDE nIniciação (apenas estáticos) ¤Globais, namespacee static

Renato Maia 15nov/2004

Escopo intx = 0; intx = 1; cout<< x; { intx = 2;cout<< x;

(Parte 1 de 3)

Comentários