SlideShare uma empresa Scribd logo
1 de 92
C / C++
Grupo Paralelismo – Unesp RC
Juliana Danelute
Rafael Amaro
Saulo Ricardo Guerra
Selma Haruyo Shimono
Grupo Paralelismo - Unesp RC
Parte 1 – C
Parte 2 – C++
PARTE 1
C
Índice C parte 1
CONCEITOS BÁSICOS rf
Estruturas Condicionais rf
Matrizes rf
Ponteiros JULIANA DANELETI
Funções saulo
Tipos de Dados do usuário rf
Entrada e Saída ju
Arquivos selma
Diretivas de pré-processadores saulo
Comentários saulo
Units selma
Visão Geral de C
C é uma linguagem de médio nível.
C é uma linguagem estruturada.
C é uma linguagem compilada.
C pode ser compilada em separada.
Tipos de Dados
Char
Int ( Integer )
Float ( Real )
Double
Void
Identificadores
Os identificadores em C devem começar
com uma letra ou _ ( sublinhado )
Os identificadores podem conter letras,
números ou _ ( sublinhado)
As primeiras 31 letras são significativas
Variáveis
Forma geral da declaração de uma variável
tipo ListaDeVariáveis
As variáveis podem ser inicializadas na
definição
Variáveis globais
Variáveis locais
Especificadores de tipo de classe de armazenamento
Extern - Referenciar variáveis globais em
módulos compilados separadamente.
Static - Mantém o valor de uma variável
entre chamadas
Register - Acesso mais rápido possível (
usando registradores em vez da memória )
EspDeArmazenamento tipo NomeDaVariável
Operadores e Atribuição
= comando de atribuição
- Menos
+ Mais
* Multiplicação
/ Divisão
% Resto da Divisão
-- Decremento
++ Incremento
Operadores Relacionais
> Maior
< Menor
>= Maior igual
<= Menor igual
= = Igual
!= Diferente
Operadores Lógicos
&& And
|| Or
! Not
Conversão de tipos
Quando duas variáveis de tipos diferentes
são misturadas, o compilador converte
todos os operandos no tipo do maior
operando.
Índice C parte 1
Conceitos Básicos
ESTRUTURAS CONDICIONAIS
Matrizes
Ponteiros
Funções
Tipos de Dados do usuário
Entrada e Saída
Arquivos
Diretivas de pré-processadores
Comentários
Units
Comando If
If ( expressão ) comando;
Else comando;
ex: if (x > y) x = y;
else x = 0;
Comando Switch
Switch ( expressão ){
Case Comando1:
seqüência de comandos
Break
.....
Default
seqüência de comandos
}
Exemplo
Switch ( x ){
Case 1: escreve(x);
break;
Case 2: Registra(x);
break;
Default
apaga(x);
}
Comando For
For( inicialização; condição; Incremento)
comando;
For( i = 0;i < 100; i++) j += i;
Comando while
While ( condição ) comando;
ex: while (x<12) {
y += x
y = y*y }
Comando do-while
Do {
comando;
} while ( condição );
Do {
y += x;
} while (x < 12);
Índice C parte 1
Conceitos Básicos
Estruturas Condicionais
MATRIZES
Ponteiros
Funções
Tipos de Dados do usuário
Entrada e Saída
Arquivos
Diretivas de pré-processadores
Comentários
Units
Matrizes Unidimensionais
Matrizes unidimensionais
Tipo NomeVar[tamanho]
Ponteiros para matrizes
Apenas o nome leva ao 1º elemento
var == &var[0]
Matrizes como parâmetros
Como ponteiro
ex: func1(int* x)
Como matriz dimensionada
ex: func1(int x[10]
Como matriz adimensional
ex: func1(int x[])
Mesmo resultado pois a função recebe apenas um
ponteiro e não cria de fato a matriz
Strings
Matriz de caracteres terminados com o
caractere nulo “/0”
Constantes strings são declarados entre
aspas duplas
ex: “Olha eu aqui!”
Matrizes Bidimensionais
tipo NomeVar [tamanho][tamanho]
Matrizes multidimensionais
tipo NomeVar[tamanho][tamanho]...[tamanho]
Índice C parte 1
Conceitos Básicos
Estruturas Condicionais
Matrizes
PONTEIROS
Funções
Tipos de Dados do usuário
Entrada e Saída
Arquivos
Diretivas de pré-processadores
Comentários
Units
Ponteiros
Forma Geral de Declaração:
tipo *nome;
Operadores:
&: devolve o endereço na memória do
seu operando – “recebe o endereço de”
*: devolve o valor da variável localizada
no endereço que o segue – “recebe o valor
que está no endereço de”
Ponteiros – Continuação
Operações:
 Adição
 Subtração
Não limitado a apenas incremento e
decremento. Pode-se somar ou subtrair
inteiros de ponteiros.
Comparação:
Em expressões relacionais
Ponteiros – Continuação
Ponteiros e Matrizes:
Para acessar elementos de matrizes usa–
se aritmética de ponteiros ou indexação
de matrizes
Matrizes de Ponteiros:
tipo *nome[num];
Ponteiros - Continuação
Inicialização de Ponteiros: é necessário para
evitar erros
Alocação Dinâmica
 Malloc(): aloca memória
 Free(): libera memória
Índice C parte 1
Conceitos Básicos
Estruturas Condicionais
Matrizes
Ponteiros
FUNÇÕES
Tipos de Dados do usuário
Entrada e Saída
Arquivos
Diretivas de pré-processadores
Comentários
Units
Funções
EspTipo Nome ( ListaParâmetros ) {
corpo da função
}
C não aceita funções dentro de funções
Parâmetros Formais
Chamadas por valor
ex: func1(int x)
Chamadas por referência
ex: func1(int *x)
Funções
Programa principal
Arquivo separado
Biblioteca
Índice C parte 1
Conceitos Básicos
Estruturas Condicionais
Matrizes
Ponteiros
Funções
TIPOS DE DADOS DO USUÁRIO
Entrada e Saída
Arquivos
Diretivas de pré-processadores
Comentários
Units
Tipos de dados do usuário
Estrutura (Struct)
Campo de bit
União (Union)
Enumeração
typedef
Struct
Forma geral
NomeVar {
tipo NomeVar
tipo NomeVar
} ListaDeVariáveis
Declaração de variáveis
Struct NomeStruct NomeVar
Struct podem ser passadas inteiras como
argumentos
Ponteiros para estruturas Struct também podem ser
usados
Campos de Bit
Usado para acessar um único bit dentro de um
byte
Forma Geral
Struct nome {
tipo nome1: comprimento;
tipo nome2: comprimento;
...
} Lista de variáveis
Uniões
Posição de memória que é compartilhada
por duas ou mais variáveis em momentos
diferentes.
Forma Geral
Union nome {
tipo NomeDaVariável;
...
} ListaVariáveis
Enumerações
enum Nome {ListaEnumeração} NomeVar
É possível atribuir valores a seqüência criada
Typedef
Typedef tipo nome
Onde nome é o novo nome do tipo
Índice C parte 1
Conceitos Básicos
Estruturas Condicionais
Matrizes
Ponteiros
Funções
Tipos de Dados do usuário
ENTRADA E SAÍDA
Arquivos
Diretivas de pré-processadores
Comentários
Units
E/S pelo Console
Lendo:
Getch();
ch=getch();
Gets();
gets(str);
Scanf();
scanf(“%t”,&variável);
Escrevendo:
Putchar();
putchar(ch);
Puts();
puts(“alo”);
Printf();
printf(“texto %t texto”,
variável);
E/S pelo Console - Continuação
%c
%d
%i
%e
%E
%f
%g
%G
Caractere
Inteiros decimais com sinal
Inteiros decimais com sinal
Notação Científica
Notação Científica
Ponto flutuante decimal
Usa %e ou %f, o que for mais curto
Usa %E ou %F, o que for mais curto
E/S pelo Console - Continuação
%o
%s
%u
%x
%X
%p
%n
%%
Octal sem sinal
String de caracteres
Inteiros decimais sem sinal
Hexadecimal sem sinal (letras minúsculas)
Hexadecimal sem sinal (letras maiúsculas)
Apresenta um ponteiro
Escreve o símbolo %
Índice C parte 1
Conceitos Básicos
Estruturas Condicionais
Matrizes
Ponteiros
Funções
Tipos de Dados do usuário
Entrada e Saída
ARQUIVOS
Diretivas de pré-processadores
Comentários
Units
E/S com Arquivos
Para se iniciar a utilização das funções de arquivos
em C é necessário saber a diferença entre Streams
e Arquivo.
Arquivo é um dispositivo real, que pode ser
desde de um arquivo em disco até um terminal ou
impressora.
Streams é um dispositivo lógico criado pelo
sistema de arquivos, sendo associada a um arquivo
para que possamos trabalhar com diferentes tipos
de dispositivos de uma mesma maneira.Existem
dois tipos de Streams: texto e binária.
Considerações iniciais
Para se utilizar as funções de E/S com arquivos é
necessário que o cabeçalho STDIO.H esteja
presente no programa.
O arquivo de cabeçalho STDIO.H fornece
protótipos para as funções e define três tipos:
size_t, ftpos_t e FILE, onde size_t e ftpos_t são do
tipo unsigned e FILE é um ponteiro para arquivo.
A macro EOF definida em STDIO.H indica fim de
arquivo e é definida como –1.
Ponteiro de Arquivo
Um ponteiro de arquivo é um ponteiro para
informações que definem várias coisas
sobre o arquivo como o nome, status e a
posição atual. Um ponteiro de arquivo é do
tipo FILE.
FILE *fp;
Funções
Fopen() – abre arquivo
FILE *fopen(const *char nomearq,
const *char modo);
Fclose() – fecha arquivo
int fclose(FILE *fp);
Modos de abertura
r – Abre arquivo texto para leitura
w – Cria arquivo texto para escrita
a – Anexa a um arquivo texto
rb – Abre um arquivo binário para leitura
wb – Cria um arquivo binário para escrita
ab – Anexa a um arquivo binário
OBS: Acrescentando + nos modos anteriores o
arquivo trabalha tanto com leitura como com
escrita.
Funções de caractere
putc() ou fputc()
int putc( int ch, FILE *fp);
getc() ou fgetc()
int getc( FILE *fp);
feof(), rewind() e ferror()
Testa fim de arquivo
int feof (FILE *fp);
Reposiciona indicador de posição no início
do arquivo
void rewind (FILE *fp);
Determina se operação de arquivo produziu
erro
int ferror (FILE *fp)
Funções de string
fputs()
int fputs (const char *str, FILE *fp);
fgets()
char *fgets (char *str, int lenght,FILE *fp);
remove() e fflush()
remove() – apaga arquivo
int remove (char *filename);
fflush() – esvazia stream
int fflush (FILE *fp);
fread() e fwrite()
fread()
size_t fread (void *buffer, size_t
numbytes, size_t count, FILE *fp);
fwrite()
size_t fwrite (void *buffer, size_t
numbytes, size_t count, FILE *fp);
fprintf() e fscanf()
fprintf()
int fprintf (FILE *fp, const char
*control_string,...);
fscanf()
int fscanf (FILE *fp, const char
*control_string,...);
fseek()
fseek()
int fseek (FILE *fp, long
numbytes, int origin);
Origin Nome da macro
Inicío do arquivo SEEK_SET
Posição atual SEEK_CUR
Final do arquivo SEEK_END
Índice C parte 1
Conceitos Básicos
Estruturas Condicionais
Matrizes
Ponteiros
Funções
Tipos de Dados do usuário
Entrada e Saída
Arquivos
DIRETIVAS DE PRÉ-PROCESSADORES
Comentários
Units
Diretivas de pré-processador
#define
#include
#error
#undef
Índice C parte 1
Conceitos Básicos
Estruturas Condicionais
Matrizes
Ponteiros
Funções
Tipos de Dados do usuário
Entrada e Saída
Arquivos
Diretivas de pré-processadores
COMENTÁRIOS
Units
Comentários
/* ... */
ex: /* Isto é um comentário! */
Obs: Todos os comentários são ignorados
pelo compilador C.
Índice C parte 1
Conceitos Básicos
Estruturas Condicionais
Matrizes
Ponteiros
Funções
Tipos de Dados do usuário
Entrada e Saída
Arquivos
Diretivas de pré-processadores
Comentários
UNITS
Protótipo de função
TipoDeRetorno NomeDaFunção
(DeclaraçãoDeParâmetros);
Arquivos-cabeçalho
Cabeçalho = header ; arquivos “.h”
Contêm protótipos de funções
Código em outro programa
Compilação conjunta (projeto)
Ex: stdio.h, conio.h
PARTE 2
C ++
Índice C++ parte 2
CLASSES
Dados Privados e Públicos
Função Construtora e Destrutora
Sobrecarga de Operador
Funções e Dados-membro estáticos
Herança
Classe Amiga
Classes de C++
Ferramenta principal para Programação
Orientada a Objetos
Similar a Struct no sentido de agrupar
membros (dados do objeto + funções)
Permite definir atributos (características) ao
objeto
Simplifica programação e amplia
reutilização do código
Classes de C++
Objeto, em um sentido mais simples, é um
objeto mesmo, uma “coisa”, como por
exemplo, um telefone, um arquivo
Num sentido de programação, objeto é uma
variável do tipo classe
Classe dados n° fone, tipo
métodos discar, atender
Objeto telefone
Classes de C++ - Estrutura
Class nome_classe {
tipo dado_membro; // Dados do Objeto
void exibe_membro; // Métodos
};
// No programa principal
Nome_classe objeto_um, objeto_dois;
Classes de C++ - Métodos
A medida que os métodos se tornarem
maiores, defini-los dentro da classe poderá
congestionar a definição de classe
Solução: colocar o protótipo dentro da
classe e definir o método fora dela
Classes de C++ - Métodos
Ex: class funcionario {
void exibe_func(void); //Protótipo
};
void funcionario::exibe_func(void)
{
};
Nome da classe
Nome do método
Índice C++ parte 2
Classes
DADOS PRIVADOS E PÚBLICOS
Função Construtora e Destrutora
Sobrecarga de Operador
Funções e Dados-membro estáticos
Herança
Classe Amiga
Dados Públicos e Privados
Se não colocar o rótulo public, pressupõe-se que
todos os membros são privados
Sendo privados, os programas não podem acessar
os membros da classe usando o operador ponto
objeto.alguma_variável = valor
Somente as funções (métodos) de membro da
classe podem acessar os membros de classe
privados
Dados Públicos e Privados
Ex:
class funcionario {
public:
int atribui_valores(char*, long, float);
void exibe_funcinario(void);
private:
char nome[64];
long func_id;
float salario;
};
Índice C++ parte 2
Classes
Dados Privados e Públicos
FUNÇÃO CONSTRUTORA E DESTRUTORA
Sobrecarga de Operador
Funções e Dados-membro estáticos
Herança
Classe Amiga
Função Construtora
Métodos que facilitam aos programadores a
inicialização dos dados-membro da classe
Tem o mesmo nome da classe, porém, não
precede o nome dela com a palavra-chave
void
Não retorna tipo
É chamada quando se cria um objeto
Função Destrutora
É chamada para descartar um objeto,
liberando a memória que estava sendo
usada
Tem o mesmo nome da classe, porém,
precedido do caractere til (~)
Não retorna tipo, nem precede o nome dela
com a palavra-chave void
Índice C++ parte 2
Classes
Dados Privados e Públicos
Função Construtora e Destrutora
SOBRECARGA DE OPERADOR
Funções e Dados-membro estáticos
Herança
Classe Amiga
Sobrecarga de operador
Ao sobrecarregar um operador para uma
classe, especifica-se uma função que C++
chama toda vez que a classe usa o operador
sobrecarregado. O significado do operador
muda somente para a classe, não para o
programa todo.
Sobrecarga de operador
Exemplo:
void operator +(char *str) //na classe string
{ strcpy(data, str); }
string titulo(“aprendendo ”); //func. constr.
titulo + “C++”;
Índice C++ parte 2
Classes
Dados Privados e Públicos
Função Construtora e Destrutora
Sobrecarga de Operador
FUNÇÕES E DADOS –MEMBRO ESTÁTICOS
Herança
Classe Amiga
Funções e dados-membro estáticos
Para objetos de uma mesma classe
compartilharem um ou mais dados-membro:
public ou private:
static tipo membro_compartilhado;
Então, definir o membro como uma
variável global, fora da classe:
tipo nome_classe membro_compartilhado;
Funções e dados-membro estáticos
Se a classe define, por exemplo:
public:
static int conta-pagina; /*definido depois
como variável global*/
static void limpa_tela(void);
os membros declarados podem ser usados
pelo programa mesmo que não existam
objetos da classe.
Índice C++ parte 2
Classes
Dados Privados e Públicos
Função Construtora e Destrutora
Sobrecarga de Operador
Funções e Dados-membro estáticos
HERANÇA
Classe Amiga
Herança
É a capacidade de uma classe derivada
herdar as características de uma classe-base
existente.
A classe derivada acessa membros public
(todo o programa acessa) e membros
protected (só ela acessa) da classe-base.
Herança múltipla
Acontece quando uma classe deriva de mais de
uma classe-base.
Exemplo:
class computador : public tela_computador,
public placa_mae
Na derivação de uma classe por herança múltipla,
a construtora da classe derivada precisa chamar
funções construtoras para cada uma das classes-
base.
Cadeia de herança
Acontece quando uma classe é derivada de uma
classe-base que já foi derivada de uma ou mais
outras classes. Exemplo:
Tela_computador
Placa_mae
Computador Estacao_trabalho
Neste caso, a classe estacao_trabalho herda as
características das três classes.
Índice C++ parte 2
Classes
Dados Privados e Públicos
Função Construtora e Destrutora
Sobrecarga de Operador
Funções e Dados-membro estáticos
Herança
CLASSE AMIGA
Classe amiga
Permite o acesso aos membros privados
entre classes não-relacionadas
A classe cujos membros privados terão o
acesso permitido declara uma outra classe
como amiga na sua definição através do
comando friend
Restringindo o acesso de uma amiga
friend ProtótipoDaFunção
Onde ProtótipoDaFunção define que
funções a classe amiga terá acesso.
Bibliografia
Schildt, Herbert
C, Completo e Total; 1990; Editora Makron
Books
Jamsa, Kris
Aprendendo C++; 1999; Editora Makron
Books

Mais conteúdo relacionado

Mais procurados

01 Orientacao A Objetos Programacao
01   Orientacao A Objetos   Programacao01   Orientacao A Objetos   Programacao
01 Orientacao A Objetos Programacaotaniamaciel
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem corvel
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Leinylson Fontinele
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem CVê Rodrigues
 
XVII SAMET - Prof. Marcello Macarthy [Mini-curso Fortran - 5ª feira 02.12.2010]
XVII SAMET - Prof. Marcello Macarthy [Mini-curso Fortran - 5ª feira 02.12.2010]XVII SAMET - Prof. Marcello Macarthy [Mini-curso Fortran - 5ª feira 02.12.2010]
XVII SAMET - Prof. Marcello Macarthy [Mini-curso Fortran - 5ª feira 02.12.2010]Dafmet Ufpel
 
Java Desktop
Java DesktopJava Desktop
Java Desktopciceroclc
 
Tecnicas programacao i_c_p4
Tecnicas programacao i_c_p4Tecnicas programacao i_c_p4
Tecnicas programacao i_c_p4D M
 
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#Rogério Moraes de Carvalho
 
5. introducao a linguagem c
5. introducao a linguagem c5. introducao a linguagem c
5. introducao a linguagem cEugenio Caetano
 
44087090 tutorial-programacao-batch
44087090 tutorial-programacao-batch44087090 tutorial-programacao-batch
44087090 tutorial-programacao-batchMarcio Pereira
 
TDC 2011 Goiânia: Evolução da linguagem de programação C#
TDC 2011 Goiânia: Evolução da linguagem de programação C#TDC 2011 Goiânia: Evolução da linguagem de programação C#
TDC 2011 Goiânia: Evolução da linguagem de programação C#Rogério Moraes de Carvalho
 
Laboratório de Programação II: Uso do ponteiro void *
Laboratório de Programação II: Uso do ponteiro void *Laboratório de Programação II: Uso do ponteiro void *
Laboratório de Programação II: Uso do ponteiro void *Alex Camargo
 

Mais procurados (19)

01 Orientacao A Objetos Programacao
01   Orientacao A Objetos   Programacao01   Orientacao A Objetos   Programacao
01 Orientacao A Objetos Programacao
 
Ud2
Ud2Ud2
Ud2
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
 
Estruturas
EstruturasEstruturas
Estruturas
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
XVII SAMET - Prof. Marcello Macarthy [Mini-curso Fortran - 5ª feira 02.12.2010]
XVII SAMET - Prof. Marcello Macarthy [Mini-curso Fortran - 5ª feira 02.12.2010]XVII SAMET - Prof. Marcello Macarthy [Mini-curso Fortran - 5ª feira 02.12.2010]
XVII SAMET - Prof. Marcello Macarthy [Mini-curso Fortran - 5ª feira 02.12.2010]
 
Java Desktop
Java DesktopJava Desktop
Java Desktop
 
Tecnicas programacao i_c_p4
Tecnicas programacao i_c_p4Tecnicas programacao i_c_p4
Tecnicas programacao i_c_p4
 
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
 
5. introducao a linguagem c
5. introducao a linguagem c5. introducao a linguagem c
5. introducao a linguagem c
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Slides do cuso_php
Slides do cuso_phpSlides do cuso_php
Slides do cuso_php
 
44087090 tutorial-programacao-batch
44087090 tutorial-programacao-batch44087090 tutorial-programacao-batch
44087090 tutorial-programacao-batch
 
Linguagem C - Controle de Programa
Linguagem C - Controle de ProgramaLinguagem C - Controle de Programa
Linguagem C - Controle de Programa
 
TDC 2011 Goiânia: Evolução da linguagem de programação C#
TDC 2011 Goiânia: Evolução da linguagem de programação C#TDC 2011 Goiânia: Evolução da linguagem de programação C#
TDC 2011 Goiânia: Evolução da linguagem de programação C#
 
Paradigma funcional
Paradigma funcionalParadigma funcional
Paradigma funcional
 
Laboratório de Programação II: Uso do ponteiro void *
Laboratório de Programação II: Uso do ponteiro void *Laboratório de Programação II: Uso do ponteiro void *
Laboratório de Programação II: Uso do ponteiro void *
 
Tipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e EncapsulamentoTipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e Encapsulamento
 

Semelhante a C 1

Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Marcelo Barros de Almeida
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducaommind
 
A Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em JogosA Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em Jogoselliando dias
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+cThiago Freitas
 
Tecnicas programacao i_c_p5
Tecnicas programacao i_c_p5Tecnicas programacao i_c_p5
Tecnicas programacao i_c_p5D M
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CJoberthSilva
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cppRUI VIEIRA
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao cprofwtelles
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cMaicon Rodrigues
 

Semelhante a C 1 (20)

Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducao
 
A Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em JogosA Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em Jogos
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+c
 
Tecnicas programacao i_c_p5
Tecnicas programacao i_c_p5Tecnicas programacao i_c_p5
Tecnicas programacao i_c_p5
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cpp
 
Linguagem c parte 1
Linguagem c parte 1Linguagem c parte 1
Linguagem c parte 1
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
 
Linguagem_C.pdf
Linguagem_C.pdfLinguagem_C.pdf
Linguagem_C.pdf
 
Ed1
Ed1Ed1
Ed1
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
 
Java2
Java2Java2
Java2
 
Programação C - Aula 2
Programação C - Aula 2Programação C - Aula 2
Programação C - Aula 2
 

Mais de profwtelles

Arduino - Parte 3.pdf
Arduino - Parte 3.pdfArduino - Parte 3.pdf
Arduino - Parte 3.pdfprofwtelles
 
Arduino - Parte 2.pdf
Arduino - Parte 2.pdfArduino - Parte 2.pdf
Arduino - Parte 2.pdfprofwtelles
 
Arduino - Parte 1.pdf
Arduino - Parte 1.pdfArduino - Parte 1.pdf
Arduino - Parte 1.pdfprofwtelles
 
Aula teoria semicondutor
Aula teoria semicondutorAula teoria semicondutor
Aula teoria semicondutorprofwtelles
 
2 controle fluxo
2 controle fluxo2 controle fluxo
2 controle fluxoprofwtelles
 
Flip flops,+registradores+e+contadores
Flip flops,+registradores+e+contadoresFlip flops,+registradores+e+contadores
Flip flops,+registradores+e+contadoresprofwtelles
 
Linguagem c wellington telles - aula 08
Linguagem c   wellington telles - aula 08Linguagem c   wellington telles - aula 08
Linguagem c wellington telles - aula 08profwtelles
 
Linguagem c wellington telles - aula 07
Linguagem c   wellington telles - aula 07Linguagem c   wellington telles - aula 07
Linguagem c wellington telles - aula 07profwtelles
 
Linguagem c wellington telles - aula 06
Linguagem c   wellington telles - aula 06Linguagem c   wellington telles - aula 06
Linguagem c wellington telles - aula 06profwtelles
 
Linguagem c wellington telles - aula 04
Linguagem c   wellington telles - aula 04Linguagem c   wellington telles - aula 04
Linguagem c wellington telles - aula 04profwtelles
 
Linguagem c wellington telles - aula 03
Linguagem c   wellington telles - aula 03Linguagem c   wellington telles - aula 03
Linguagem c wellington telles - aula 03profwtelles
 
Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02profwtelles
 
Linguagem c wellington telles - aula 05
Linguagem c   wellington telles - aula 05Linguagem c   wellington telles - aula 05
Linguagem c wellington telles - aula 05profwtelles
 
Linguagem c wellington telles - aula 01
Linguagem c   wellington telles - aula 01Linguagem c   wellington telles - aula 01
Linguagem c wellington telles - aula 01profwtelles
 
Componentes importantes para Delphi
Componentes importantes para DelphiComponentes importantes para Delphi
Componentes importantes para Delphiprofwtelles
 
Lista coseno seno
Lista coseno senoLista coseno seno
Lista coseno senoprofwtelles
 
CI Reguladores de Tensão
CI Reguladores de TensãoCI Reguladores de Tensão
CI Reguladores de Tensãoprofwtelles
 

Mais de profwtelles (20)

Arduino - Parte 3.pdf
Arduino - Parte 3.pdfArduino - Parte 3.pdf
Arduino - Parte 3.pdf
 
Arduino - Parte 2.pdf
Arduino - Parte 2.pdfArduino - Parte 2.pdf
Arduino - Parte 2.pdf
 
Arduino - Parte 1.pdf
Arduino - Parte 1.pdfArduino - Parte 1.pdf
Arduino - Parte 1.pdf
 
Aula teoria semicondutor
Aula teoria semicondutorAula teoria semicondutor
Aula teoria semicondutor
 
Ccp
CcpCcp
Ccp
 
3 vetor.matriz
3 vetor.matriz3 vetor.matriz
3 vetor.matriz
 
2 controle fluxo
2 controle fluxo2 controle fluxo
2 controle fluxo
 
Pic aula1
Pic   aula1Pic   aula1
Pic aula1
 
Flip flops,+registradores+e+contadores
Flip flops,+registradores+e+contadoresFlip flops,+registradores+e+contadores
Flip flops,+registradores+e+contadores
 
Linguagem c wellington telles - aula 08
Linguagem c   wellington telles - aula 08Linguagem c   wellington telles - aula 08
Linguagem c wellington telles - aula 08
 
Linguagem c wellington telles - aula 07
Linguagem c   wellington telles - aula 07Linguagem c   wellington telles - aula 07
Linguagem c wellington telles - aula 07
 
Linguagem c wellington telles - aula 06
Linguagem c   wellington telles - aula 06Linguagem c   wellington telles - aula 06
Linguagem c wellington telles - aula 06
 
Linguagem c wellington telles - aula 04
Linguagem c   wellington telles - aula 04Linguagem c   wellington telles - aula 04
Linguagem c wellington telles - aula 04
 
Linguagem c wellington telles - aula 03
Linguagem c   wellington telles - aula 03Linguagem c   wellington telles - aula 03
Linguagem c wellington telles - aula 03
 
Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02
 
Linguagem c wellington telles - aula 05
Linguagem c   wellington telles - aula 05Linguagem c   wellington telles - aula 05
Linguagem c wellington telles - aula 05
 
Linguagem c wellington telles - aula 01
Linguagem c   wellington telles - aula 01Linguagem c   wellington telles - aula 01
Linguagem c wellington telles - aula 01
 
Componentes importantes para Delphi
Componentes importantes para DelphiComponentes importantes para Delphi
Componentes importantes para Delphi
 
Lista coseno seno
Lista coseno senoLista coseno seno
Lista coseno seno
 
CI Reguladores de Tensão
CI Reguladores de TensãoCI Reguladores de Tensão
CI Reguladores de Tensão
 

C 1

  • 1. C / C++ Grupo Paralelismo – Unesp RC Juliana Danelute Rafael Amaro Saulo Ricardo Guerra Selma Haruyo Shimono
  • 2. Grupo Paralelismo - Unesp RC Parte 1 – C Parte 2 – C++
  • 4. Índice C parte 1 CONCEITOS BÁSICOS rf Estruturas Condicionais rf Matrizes rf Ponteiros JULIANA DANELETI Funções saulo Tipos de Dados do usuário rf Entrada e Saída ju Arquivos selma Diretivas de pré-processadores saulo Comentários saulo Units selma
  • 5. Visão Geral de C C é uma linguagem de médio nível. C é uma linguagem estruturada. C é uma linguagem compilada. C pode ser compilada em separada.
  • 6. Tipos de Dados Char Int ( Integer ) Float ( Real ) Double Void
  • 7. Identificadores Os identificadores em C devem começar com uma letra ou _ ( sublinhado ) Os identificadores podem conter letras, números ou _ ( sublinhado) As primeiras 31 letras são significativas
  • 8. Variáveis Forma geral da declaração de uma variável tipo ListaDeVariáveis As variáveis podem ser inicializadas na definição Variáveis globais Variáveis locais
  • 9. Especificadores de tipo de classe de armazenamento Extern - Referenciar variáveis globais em módulos compilados separadamente. Static - Mantém o valor de uma variável entre chamadas Register - Acesso mais rápido possível ( usando registradores em vez da memória ) EspDeArmazenamento tipo NomeDaVariável
  • 10. Operadores e Atribuição = comando de atribuição - Menos + Mais * Multiplicação / Divisão % Resto da Divisão -- Decremento ++ Incremento
  • 11. Operadores Relacionais > Maior < Menor >= Maior igual <= Menor igual = = Igual != Diferente
  • 13. Conversão de tipos Quando duas variáveis de tipos diferentes são misturadas, o compilador converte todos os operandos no tipo do maior operando.
  • 14. Índice C parte 1 Conceitos Básicos ESTRUTURAS CONDICIONAIS Matrizes Ponteiros Funções Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores Comentários Units
  • 15. Comando If If ( expressão ) comando; Else comando; ex: if (x > y) x = y; else x = 0;
  • 16. Comando Switch Switch ( expressão ){ Case Comando1: seqüência de comandos Break ..... Default seqüência de comandos }
  • 17. Exemplo Switch ( x ){ Case 1: escreve(x); break; Case 2: Registra(x); break; Default apaga(x); }
  • 18. Comando For For( inicialização; condição; Incremento) comando; For( i = 0;i < 100; i++) j += i;
  • 19. Comando while While ( condição ) comando; ex: while (x<12) { y += x y = y*y }
  • 20. Comando do-while Do { comando; } while ( condição ); Do { y += x; } while (x < 12);
  • 21. Índice C parte 1 Conceitos Básicos Estruturas Condicionais MATRIZES Ponteiros Funções Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores Comentários Units
  • 22. Matrizes Unidimensionais Matrizes unidimensionais Tipo NomeVar[tamanho] Ponteiros para matrizes Apenas o nome leva ao 1º elemento var == &var[0]
  • 23. Matrizes como parâmetros Como ponteiro ex: func1(int* x) Como matriz dimensionada ex: func1(int x[10] Como matriz adimensional ex: func1(int x[]) Mesmo resultado pois a função recebe apenas um ponteiro e não cria de fato a matriz
  • 24. Strings Matriz de caracteres terminados com o caractere nulo “/0” Constantes strings são declarados entre aspas duplas ex: “Olha eu aqui!”
  • 25. Matrizes Bidimensionais tipo NomeVar [tamanho][tamanho] Matrizes multidimensionais tipo NomeVar[tamanho][tamanho]...[tamanho]
  • 26. Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes PONTEIROS Funções Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores Comentários Units
  • 27. Ponteiros Forma Geral de Declaração: tipo *nome; Operadores: &: devolve o endereço na memória do seu operando – “recebe o endereço de” *: devolve o valor da variável localizada no endereço que o segue – “recebe o valor que está no endereço de”
  • 28. Ponteiros – Continuação Operações:  Adição  Subtração Não limitado a apenas incremento e decremento. Pode-se somar ou subtrair inteiros de ponteiros. Comparação: Em expressões relacionais
  • 29. Ponteiros – Continuação Ponteiros e Matrizes: Para acessar elementos de matrizes usa– se aritmética de ponteiros ou indexação de matrizes Matrizes de Ponteiros: tipo *nome[num];
  • 30. Ponteiros - Continuação Inicialização de Ponteiros: é necessário para evitar erros Alocação Dinâmica  Malloc(): aloca memória  Free(): libera memória
  • 31. Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros FUNÇÕES Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores Comentários Units
  • 32. Funções EspTipo Nome ( ListaParâmetros ) { corpo da função } C não aceita funções dentro de funções
  • 33. Parâmetros Formais Chamadas por valor ex: func1(int x) Chamadas por referência ex: func1(int *x)
  • 35. Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções TIPOS DE DADOS DO USUÁRIO Entrada e Saída Arquivos Diretivas de pré-processadores Comentários Units
  • 36. Tipos de dados do usuário Estrutura (Struct) Campo de bit União (Union) Enumeração typedef
  • 37. Struct Forma geral NomeVar { tipo NomeVar tipo NomeVar } ListaDeVariáveis Declaração de variáveis Struct NomeStruct NomeVar Struct podem ser passadas inteiras como argumentos Ponteiros para estruturas Struct também podem ser usados
  • 38. Campos de Bit Usado para acessar um único bit dentro de um byte Forma Geral Struct nome { tipo nome1: comprimento; tipo nome2: comprimento; ... } Lista de variáveis
  • 39. Uniões Posição de memória que é compartilhada por duas ou mais variáveis em momentos diferentes. Forma Geral Union nome { tipo NomeDaVariável; ... } ListaVariáveis
  • 40. Enumerações enum Nome {ListaEnumeração} NomeVar É possível atribuir valores a seqüência criada
  • 41. Typedef Typedef tipo nome Onde nome é o novo nome do tipo
  • 42. Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções Tipos de Dados do usuário ENTRADA E SAÍDA Arquivos Diretivas de pré-processadores Comentários Units
  • 44. E/S pelo Console - Continuação %c %d %i %e %E %f %g %G Caractere Inteiros decimais com sinal Inteiros decimais com sinal Notação Científica Notação Científica Ponto flutuante decimal Usa %e ou %f, o que for mais curto Usa %E ou %F, o que for mais curto
  • 45. E/S pelo Console - Continuação %o %s %u %x %X %p %n %% Octal sem sinal String de caracteres Inteiros decimais sem sinal Hexadecimal sem sinal (letras minúsculas) Hexadecimal sem sinal (letras maiúsculas) Apresenta um ponteiro Escreve o símbolo %
  • 46. Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções Tipos de Dados do usuário Entrada e Saída ARQUIVOS Diretivas de pré-processadores Comentários Units
  • 47. E/S com Arquivos Para se iniciar a utilização das funções de arquivos em C é necessário saber a diferença entre Streams e Arquivo. Arquivo é um dispositivo real, que pode ser desde de um arquivo em disco até um terminal ou impressora. Streams é um dispositivo lógico criado pelo sistema de arquivos, sendo associada a um arquivo para que possamos trabalhar com diferentes tipos de dispositivos de uma mesma maneira.Existem dois tipos de Streams: texto e binária.
  • 48. Considerações iniciais Para se utilizar as funções de E/S com arquivos é necessário que o cabeçalho STDIO.H esteja presente no programa. O arquivo de cabeçalho STDIO.H fornece protótipos para as funções e define três tipos: size_t, ftpos_t e FILE, onde size_t e ftpos_t são do tipo unsigned e FILE é um ponteiro para arquivo. A macro EOF definida em STDIO.H indica fim de arquivo e é definida como –1.
  • 49. Ponteiro de Arquivo Um ponteiro de arquivo é um ponteiro para informações que definem várias coisas sobre o arquivo como o nome, status e a posição atual. Um ponteiro de arquivo é do tipo FILE. FILE *fp;
  • 50. Funções Fopen() – abre arquivo FILE *fopen(const *char nomearq, const *char modo); Fclose() – fecha arquivo int fclose(FILE *fp);
  • 51. Modos de abertura r – Abre arquivo texto para leitura w – Cria arquivo texto para escrita a – Anexa a um arquivo texto rb – Abre um arquivo binário para leitura wb – Cria um arquivo binário para escrita ab – Anexa a um arquivo binário OBS: Acrescentando + nos modos anteriores o arquivo trabalha tanto com leitura como com escrita.
  • 52. Funções de caractere putc() ou fputc() int putc( int ch, FILE *fp); getc() ou fgetc() int getc( FILE *fp);
  • 53. feof(), rewind() e ferror() Testa fim de arquivo int feof (FILE *fp); Reposiciona indicador de posição no início do arquivo void rewind (FILE *fp); Determina se operação de arquivo produziu erro int ferror (FILE *fp)
  • 54. Funções de string fputs() int fputs (const char *str, FILE *fp); fgets() char *fgets (char *str, int lenght,FILE *fp);
  • 55. remove() e fflush() remove() – apaga arquivo int remove (char *filename); fflush() – esvazia stream int fflush (FILE *fp);
  • 56. fread() e fwrite() fread() size_t fread (void *buffer, size_t numbytes, size_t count, FILE *fp); fwrite() size_t fwrite (void *buffer, size_t numbytes, size_t count, FILE *fp);
  • 57. fprintf() e fscanf() fprintf() int fprintf (FILE *fp, const char *control_string,...); fscanf() int fscanf (FILE *fp, const char *control_string,...);
  • 58. fseek() fseek() int fseek (FILE *fp, long numbytes, int origin); Origin Nome da macro Inicío do arquivo SEEK_SET Posição atual SEEK_CUR Final do arquivo SEEK_END
  • 59. Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções Tipos de Dados do usuário Entrada e Saída Arquivos DIRETIVAS DE PRÉ-PROCESSADORES Comentários Units
  • 61. Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores COMENTÁRIOS Units
  • 62. Comentários /* ... */ ex: /* Isto é um comentário! */ Obs: Todos os comentários são ignorados pelo compilador C.
  • 63. Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores Comentários UNITS
  • 64. Protótipo de função TipoDeRetorno NomeDaFunção (DeclaraçãoDeParâmetros);
  • 65. Arquivos-cabeçalho Cabeçalho = header ; arquivos “.h” Contêm protótipos de funções Código em outro programa Compilação conjunta (projeto) Ex: stdio.h, conio.h
  • 67. Índice C++ parte 2 CLASSES Dados Privados e Públicos Função Construtora e Destrutora Sobrecarga de Operador Funções e Dados-membro estáticos Herança Classe Amiga
  • 68. Classes de C++ Ferramenta principal para Programação Orientada a Objetos Similar a Struct no sentido de agrupar membros (dados do objeto + funções) Permite definir atributos (características) ao objeto Simplifica programação e amplia reutilização do código
  • 69. Classes de C++ Objeto, em um sentido mais simples, é um objeto mesmo, uma “coisa”, como por exemplo, um telefone, um arquivo Num sentido de programação, objeto é uma variável do tipo classe Classe dados n° fone, tipo métodos discar, atender Objeto telefone
  • 70. Classes de C++ - Estrutura Class nome_classe { tipo dado_membro; // Dados do Objeto void exibe_membro; // Métodos }; // No programa principal Nome_classe objeto_um, objeto_dois;
  • 71. Classes de C++ - Métodos A medida que os métodos se tornarem maiores, defini-los dentro da classe poderá congestionar a definição de classe Solução: colocar o protótipo dentro da classe e definir o método fora dela
  • 72. Classes de C++ - Métodos Ex: class funcionario { void exibe_func(void); //Protótipo }; void funcionario::exibe_func(void) { }; Nome da classe Nome do método
  • 73. Índice C++ parte 2 Classes DADOS PRIVADOS E PÚBLICOS Função Construtora e Destrutora Sobrecarga de Operador Funções e Dados-membro estáticos Herança Classe Amiga
  • 74. Dados Públicos e Privados Se não colocar o rótulo public, pressupõe-se que todos os membros são privados Sendo privados, os programas não podem acessar os membros da classe usando o operador ponto objeto.alguma_variável = valor Somente as funções (métodos) de membro da classe podem acessar os membros de classe privados
  • 75. Dados Públicos e Privados Ex: class funcionario { public: int atribui_valores(char*, long, float); void exibe_funcinario(void); private: char nome[64]; long func_id; float salario; };
  • 76. Índice C++ parte 2 Classes Dados Privados e Públicos FUNÇÃO CONSTRUTORA E DESTRUTORA Sobrecarga de Operador Funções e Dados-membro estáticos Herança Classe Amiga
  • 77. Função Construtora Métodos que facilitam aos programadores a inicialização dos dados-membro da classe Tem o mesmo nome da classe, porém, não precede o nome dela com a palavra-chave void Não retorna tipo É chamada quando se cria um objeto
  • 78. Função Destrutora É chamada para descartar um objeto, liberando a memória que estava sendo usada Tem o mesmo nome da classe, porém, precedido do caractere til (~) Não retorna tipo, nem precede o nome dela com a palavra-chave void
  • 79. Índice C++ parte 2 Classes Dados Privados e Públicos Função Construtora e Destrutora SOBRECARGA DE OPERADOR Funções e Dados-membro estáticos Herança Classe Amiga
  • 80. Sobrecarga de operador Ao sobrecarregar um operador para uma classe, especifica-se uma função que C++ chama toda vez que a classe usa o operador sobrecarregado. O significado do operador muda somente para a classe, não para o programa todo.
  • 81. Sobrecarga de operador Exemplo: void operator +(char *str) //na classe string { strcpy(data, str); } string titulo(“aprendendo ”); //func. constr. titulo + “C++”;
  • 82. Índice C++ parte 2 Classes Dados Privados e Públicos Função Construtora e Destrutora Sobrecarga de Operador FUNÇÕES E DADOS –MEMBRO ESTÁTICOS Herança Classe Amiga
  • 83. Funções e dados-membro estáticos Para objetos de uma mesma classe compartilharem um ou mais dados-membro: public ou private: static tipo membro_compartilhado; Então, definir o membro como uma variável global, fora da classe: tipo nome_classe membro_compartilhado;
  • 84. Funções e dados-membro estáticos Se a classe define, por exemplo: public: static int conta-pagina; /*definido depois como variável global*/ static void limpa_tela(void); os membros declarados podem ser usados pelo programa mesmo que não existam objetos da classe.
  • 85. Índice C++ parte 2 Classes Dados Privados e Públicos Função Construtora e Destrutora Sobrecarga de Operador Funções e Dados-membro estáticos HERANÇA Classe Amiga
  • 86. Herança É a capacidade de uma classe derivada herdar as características de uma classe-base existente. A classe derivada acessa membros public (todo o programa acessa) e membros protected (só ela acessa) da classe-base.
  • 87. Herança múltipla Acontece quando uma classe deriva de mais de uma classe-base. Exemplo: class computador : public tela_computador, public placa_mae Na derivação de uma classe por herança múltipla, a construtora da classe derivada precisa chamar funções construtoras para cada uma das classes- base.
  • 88. Cadeia de herança Acontece quando uma classe é derivada de uma classe-base que já foi derivada de uma ou mais outras classes. Exemplo: Tela_computador Placa_mae Computador Estacao_trabalho Neste caso, a classe estacao_trabalho herda as características das três classes.
  • 89. Índice C++ parte 2 Classes Dados Privados e Públicos Função Construtora e Destrutora Sobrecarga de Operador Funções e Dados-membro estáticos Herança CLASSE AMIGA
  • 90. Classe amiga Permite o acesso aos membros privados entre classes não-relacionadas A classe cujos membros privados terão o acesso permitido declara uma outra classe como amiga na sua definição através do comando friend
  • 91. Restringindo o acesso de uma amiga friend ProtótipoDaFunção Onde ProtótipoDaFunção define que funções a classe amiga terá acesso.
  • 92. Bibliografia Schildt, Herbert C, Completo e Total; 1990; Editora Makron Books Jamsa, Kris Aprendendo C++; 1999; Editora Makron Books