Você está na página 1de 6

ESTRUTURA DE DADOS

ORIENTAÇÃO A OBJETOS
a orientação a objetos é uma abordagem de programação que utiliza classes e
objetos para organizar e estruturar o código. Uma classe é um modelo que
define atributos (dados) e métodos (funções) relacionados.

Public (public):
 Membros declarados como públicos são acessíveis de qualquer lugar do
código, tanto dentro quanto fora da classe.
 Eles formam a interface pública da classe.
Private (private):
 Membros declarados como privados só são acessíveis dentro da própria
classe.
 Eles formam a implementação interna da classe e são ocultos do código
externo.
Protected (protected):
 Membros declarados como protegidos são semelhantes aos privados,
mas têm uma diferença importante: eles são acessíveis às classes
derivadas (herança).
 Os membros protegidos são uma forma de fornecer acesso limitado a
subclasses, mantendo a encapsulação.

ABSTRAÇÃO
A abstração é um conceito fundamental na programação orientada a objetos
que permite simplificar e representar entidades do mundo real no código. Ela
envolve a identificação e isolamento dos aspectos essenciais de um objeto,
enquanto oculta os detalhes desnecessários.
Exemplo de abstração em C++:
class Forma {
public:
// Método virtual puro para representar a abstração de desenhar
virtual void desenhar() = 0;
};
ENCAPSULAMENTO
O encapsulamento é o conceito de reunir dados (atributos) e métodos
(funções) que operam nesses dados em uma única unidade, ou seja, uma
classe. Ele protege os detalhes internos de uma implementação, fornecendo
uma interface controlada para interagir com o objeto.
Exemplo de encapsulamento em C++:
class ContaBancaria {
private:
double saldo;
public:
// Métodos para interagir com o saldo de forma controlada
void depositar(double valor) {
saldo += valor;
}

void sacar(double valor) {


if (valor <= saldo) {
saldo -= valor;
} else {
cout << "Saldo insuficiente." << endl;
}
}
};

HERANÇA
A herança permite que uma classe herde características (atributos e métodos)
de outra, promovendo a reutilização de código e estabelecendo relações
hierárquicas entre classes.
Exemplo de herança em C++:
class Animal {
public:
void comer() {
cout << "O animal está comendo." << endl;
}
};

class Cachorro : public Animal {


public:
void latir() {
cout << "O cachorro está latindo." << endl;
}
};

MÉTODO CONSTRUTOR
O método construtor é responsável por inicializar os atributos de uma classe
quando um objeto é criado. Ele tem o mesmo nome da classe e não possui tipo
de retorno.
Exemplo de uso do método construtor:
Pessoa pessoa1("João", 25);

PONTEIROS EM C++
Os ponteiros em C++ são variáveis que armazenam endereços de memória.
Eles são usados para manipular dinamicamente a alocação de memória e
acessar dados indiretamente.
Exemplo de declaração e uso de ponteiros:
int numero = 10;
int *ponteiro = &numero;

// Acessando o valor através do ponteiro


cout << "Valor: " << *ponteiro << endl;

ESTRUTURA DE DADOS – PILHA


Uma pilha é uma estrutura de dados que segue a ordem Last In, First Out
(LIFO). Os elementos são adicionados e removidos apenas do topo.
Exemplo de implementação de pilha em C++:
class Pilha {
private:
int *dados;
int tamanho;
int topo;
public:
Pilha(int tamanho) {
this->tamanho = tamanho;
this->dados = new int[tamanho];
this->topo = -1;
}
void empilha(int valor) {
this->topo++;
this->dados[this->topo] = valor;
}
int desempilha() {
int valor = this->dados[this->topo];
this->topo--;
return valor;
}
void imprime() {
for (int i = 0; i <= this->topo; i++) {
cout << this->dados[i] << " ";
}
cout << endl;
}
};
int main() {
Pilha pilha(5);
pilha.empilha(10);
pilha.empilha(20);
pilha.empilha(30);

cout << "Pilha: ";


pilha.imprime();

int valor = pilha.desempilha();


cout << "Valor desempilhado: " << valor << endl;
cout << "Pilha: ";
pilha.imprime();

return 0;
}

ESTRUTURA DE DADOS – FILA


Uma fila é uma estrutura de dados que segue a ordem First In, First Out
(FIFO). Os elementos são adicionados no final e removidos do início.
Exemplo de implementação de fila em C++:
class Fila {
private:
int *dados;
int tamanho;
int inicio;
int fim;

public:
Fila(int tamanho) {
this->tamanho = tamanho;
this->dados = new int[tamanho];
this->inicio = 0;
this->fim = 0;
}

void insere(int valor) {


if (this->fim == this->tamanho) {
cout << "Fila cheia" << endl;
return;
}

this->dados[this->fim] = valor;
this->fim

Você também pode gostar