Você está na página 1de 54

INTRODUO AO C++

SISTEMAS DE INFORMAO

DR. EDNALDO B. PIZZOLATO


Programao Orientada a Objetos

Tpicos
Estrutura Bsica de Programas C e
C++
Tipos de Dados
Variveis
Strings
Entrada e Sada de Dados no C e C++
Programao Orientada a Objetos

INTRODUO

O C++ aceita a sintaxe C, acrescentando


melhoramentos, ampliando o escopo de
aplicaes, e possibilitando o
desenvolvimento de programas baseados
no paradigma da Orientao a Objetos;
Programao Orientada a Objetos

INTRODUO

O C++ mantm caracterstica do C de


ser uma linguagem de pequeno tamanho!

C++ possui apenas 62 palavras reservadas


(32 delas comuns ao C);
Programao Orientada a Objetos

INTRODUO

A diferena maior se d nas unidades de


programao: no C so as funes
enquanto que no C++ so as classes (que
instanciam objetos e contm funes
chamadas de mtodos).
Programao Orientada a Objetos

PALAVRAS RESERVADAS EM C E C++


auto break case char const

continue default do double else

enum extern float for goto

if int long register return

short signed sizeof static struct

switch typedef union unsigned void

volatile while
Programao Orientada a Objetos

PALAVRAS RESERVADAS EM C E C++


new wchar_t mutable explicit bool

delete dynamic_cast asm public true

inline reinterpret_cast this protected false

typeid static_cast try private

template const_cast catch operator

using typename throw friend

namespace virtual class


Programao Orientada a Objetos

Modelo
// Diretivas do Processador
#include <iostream.h>

void main()
{
cout << Meu primeiro programa << endl;
}
Programao Orientada a Objetos

Modelo
// Diretivas do Processador
#include <iostream.h>

int main()
{
cout << Meu primeiro programa << endl;
return 0;
}
Programao Orientada a Objetos

Modelo (compilador ISO98 v1.0)


// Diretivas do Processador
#include <iostream.h>

int main()
{
std::cout << Meu primeiro programa << endl;
return 0;
}
Programao Orientada a Objetos

Modelo (compilador ISO98 v1.1)


// Diretivas do Processador
#include <iostream.h>
using std::cout;
int main()
{
cout << Meu primeiro programa << endl;
return 0;
}
Programao Orientada a Objetos

Modelo (compilador ISO98 v1.2)


// Diretivas do Processador
#include <iostream.h>
using namespace std;
int main()
{
cout << Meu primeiro programa << endl;
return 0;
}
/* Namespace faz parte do que se chama Ambiente de
Nomes no C++, que um mecanismo para expressar
agrupamentos lgicos.*/
Programao Orientada a Objetos

Algumas palavras sobre comentrios

Documentam programas
Melhoram a leitura de programas
So ignorados pelo compilador
Programao Orientada a Objetos

Algumas palavras sobre diretivas de pr-


processamento

Comeam com #
Processadas por pr-processador antes da
compilao
Programao Orientada a Objetos

TIPOS DO C++
TIPO NOME modificadores
lgico bool
inteiro int unsigned, short, long
real float long
double
literal char unsigned
void -
Programao Orientada a Objetos

TIPOS DO C++
declarao bits bytes faixa
char 8 1 -128 a 127
unsigned char 8 1 0 a 255
int 16/32 2/4

unsigned int 16/32 2

short int 16 2 -32768 a 32767


long int 32 4 -2.14 109 a 2.14 109
unsigned long 32 4 0 a 4.29 109
Programao Orientada a Objetos

DECLARAO DAS VARIVEIS


Sintaxe de declarao de variveis
em C e C++ semelhante.
tipo_de_dado lista_variveis;

Exemplos :
int x, y, z;
float f;
Programao Orientada a Objetos

REGRAS PARA NOMES DAS VARIVEIS

-So reconhecidos pelo C os 32


primeiros caracteres de uma varivel;
-S se pode iniciar um nome com um
caractere do alfabeto ou pelo
caractere underscore _;
Programao Orientada a Objetos

REGRAS PARA NOMES DAS VARIVEIS

-Os demais caracteres podem ser


alfabeto, underscore ou caracteres
numricos;
- O C e o C++ consideram diferentes
nomes com letras maisculas e minsculas.
Portanto as seguintes variveis so
diferentes : int maior, MAIOR, Maior, mAiOr;
Programao Orientada a Objetos

LOCAL DAS DECLARAES DE


VARIVEIS

Em C, s se pode declarar uma varivel


dentro de funo, antes das instrues ou
entre funes (sendo, neste caso, global a
partir de sua declarao).
Programao Orientada a Objetos

LOCAL DAS DECLARAES DE


VARIVEIS

Em C++, alm destas formas, pode-se


declarar uma varivel em qualquer
ponto de um programa - entre
instrues ou mesmo dentro de
instrues.
Programao Orientada a Objetos

ESCOPO DE VARIVEIS

As regras de escopo referem-se


visibilidade da varivel. H 3 escopos
possveis para uma varivel: local,
arquivo e classe.
Programao Orientada a Objetos

ESCOPO DE VARIVEIS

LOCAL: so acessadas nica e


exclusivamente pelo bloco no qual
foram declaradas.

Um bloco definido por


{....}
Programao Orientada a Objetos

ESCOPO DE VARIVEIS

GLOBAL: so acessveis em todo o


arquivo.
Programao Orientada a Objetos

ESCOPO DE VARIVEIS

GLOBAL: blocos com


variveis locais hom-
nimas a variveis glo-
bais perdem o acesso
s ltimas.
Programao Orientada a Objetos

ESCOPO DE VARIVEIS

O C++ diferencia variveis locais


e globais homnimas com o
Operador de Resoluo de
Escopo :: (tambm chamado
Qualificao de Escopo), que
colocado em frente varivel,
faz com que o programa acesse
a global.
Um erro ser apontado, caso
no exista a varivel global.
Programao Orientada a Objetos

ESCOPO DE VARIVEIS
#include <iostream.h>
int x = 2;
main ()
{ int x = 0;
cout << "local << dob( x );
cout <<"global<< dob(::x);
}
int dob (int v)
{
return 2*v;
}

Resultado : local = 0 global = 4


Programao Orientada a Objetos

CLASSES DE ARMAZENAMENTO

As classes de armazenamento
referem-se ao tempo de vida das
variveis.

C++ no acrescenta novas


definies ao C.
Programao Orientada a Objetos

CLASSES DE ARMAZENAMENTO

Os especificadores auto e register


significam tempo de vida local, ou
seja, so liberados da memria
quando o programa encerra seu
escopo de declarao.
Programao Orientada a Objetos

CLASSES DE ARMAZENAMENTO

Vale lembrar que todas as variveis


locais normalmente declaradas em
C e C++ so automticas, ou seja,
do tipo auto.
Programao Orientada a Objetos

CLASSES DE ARMAZENAMENTO

Usa-se register para otimizar o


acesso, solicitando a alocao da
varivel em algum registrador
disponvel. Somente variveis dos
tipos char e int e suas variantes
(signed, unsigned, long, etc)
podem ser declaradas como
register.
Programao Orientada a Objetos

CLASSES DE ARMAZENAMENTO

Os especificadores static e extern


possuem tempos de vida globais,
ou seja, permanecem alocados em
memria guardando seu ltimo
valor mesmo aps o encerramento
de seu escopo.
Programao Orientada a Objetos

CLASSES DE ARMAZENAMENTO

Usa-se extern para se especificar


que a definio da varivel ocorre
uma nica vez, em qualquer um
dos arquivos fontes que compem
o programa.
Programao Orientada a Objetos

CLASSES DE ARMAZENAMENTO

Em C, o especificador extern foi


idealizado para auxiliar a
compilao em separado de
arquivos. Em C++, porm, qualquer
varivel ou funo no declarada
explicitamente como static ser, do
tipo extern.
Programao Orientada a Objetos

CLASSES DE
int dobro (int x)
ARMAZENAMENTO {
static int cont=0;
A declarao cont++;
printf(%d \n,cont);// no
static faz com que fazer isso
return 2*x;
a varivel perma- }
nea existindo em
memria enquan-
to o programa es-
tiver rodando.
Programao Orientada a Objetos

CLASSES DE ARMAZENAMENTO

A abrangncia da varivel no
se altera com a declarao
static.
Por exemplo, cont continua
sendo uma varivel local da
funo dobro().
Programao Orientada a Objetos

CLASSES DE ARMAZENAMENTO

Quando a declarao static


usada em variveis globais, o
escopo da varivel modificado
nica e exclusivamente no
arquivo fonte onde ela se
encontra.
Programao Orientada a Objetos

CONVERSO DE TIPOS

Alternativamente converso de
cast do C, C++ prope uma
converso explcita de tipo, onde se
pode converter um dado tanto para
tipos pr-definidos da linguagem
como para tipos definidos pelo
programador.
Programao Orientada a Objetos

CONVERSO DE TIPOS

Exemplo :

char letra = 'a';


int var = letra; // var vale ASCII de 'a
Programao Orientada a Objetos

CONVERSO DE TIPOS

Exemplo :

float fReal = 45.60;


int iInteiro, iOutro;
char cCaracter = W;

iOutro = (int) cCaracter;


cCaracter = char(fReal);
iInteiro = (int) fReal;
Programao Orientada a Objetos

CADEIAS DE CARACTERES

Exemplo :

char cadeia[20];
string x; // conteiner incluir <string.h>

x = Objetos";
cout << x : " << x << endl;
Programao Orientada a Objetos

ENTRADA E SADA DE DADOS

Bibliotecas Stream
entrada de dados pelo teclado
cin (scanf no C)
sada de dados para tela
cout (printf no C)
necessria a incluso da biblioteca
iostream.h
#include <iostream.h> // no C stdio.h
Programao Orientada a Objetos

ENTRADA E SADA DE DADOS

Exemplos :
Variveis C++ C
int x; cin >> x; scanf("%d",&x);
float f,g; cin >> f >> g; scanf("%f%f",&f,&g);
Programao Orientada a Objetos

ENTRADA E SADA DE DADOS

Exemplos :
Variveis C++ C
int x; cout << x = << x; printf("x=%d",x);
Programao Orientada a Objetos

ENTRADA E SADA DE DADOS

Ateno :
possvel imprimir mais de uma
varivel ao mesmo tempo!
cout << x << e << y << endl;
Programao Orientada a Objetos

MACROS OU DIRETIVAS #DEFINE


Sintaxe :
#define frase1 frase2

Durante a compilao ao se encontrar a


ocorrncia de frase1, o compilador
substituir por frase2.
Programao Orientada a Objetos

MACROS OU DIRETIVAS #DEFINE

Exemplo :
#define PI 3.141596
...
area = PI * raio*raio; (no cdigo)

area = 3.141596 *raio*raio; (cdigo


compilado)
Programao Orientada a Objetos

ESPECIFICADOR CONST
Surgiu como alternativa ao #define na
primeira verso do C++ e mais tarde foi
incorporado ao padro ANSI C;
Para se declarar um valor constante, usa-se
a palavra const seguida do tipo e do valor
da constante;
Em C++, possvel tornar constantes:
valores, ponteiros, contedo de ponteiros e
parmetros de funo.
Programao Orientada a Objetos

ESPECIFICADOR CONST
Sintaxe :
const tipo tVar = valor;
Depois de definido o valor no se pode
mais alter-lo.
No ocorre substituies como com
define!
Exemplo:
const float PI = 3.141596;
Programao Orientada a Objetos

DEFINIO DE TIPOS
Pode-se definir tipos prprios de
variveis, combinando tipos j
existentes;
Para isto utiliza-se a palavra reservada:
typedef
Exemplo:
typedef int MEU_INT;
Programao Orientada a Objetos

Concluses:

C++ uma linguagem muito


parecida com C.
Quem aprendeu C no ter
dificuldades em entender a
linguagem C++. Alis, C, C++, C# e
Java so muito parecidas.
Programao Orientada a Objetos

Concluses:

Vimos que C++ incluiu tipos novos


(bool, por exemplo) e, agora,
permite definir uma constante
utilizando const.
Tambm permite utilizar os valores
lgicos true e false.
Programao Orientada a Objetos

Concluses:

Para quem tinha dores de cabea


com os comandos de entrada e
sada (scanf e printf) uma boa nova:
cin
E
cout
Programao Orientada a Objetos

FIM