Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Claro! Vamos criar um exemplo de programação orientada a objetos (POO) em C++. Vou desenvolver um sistema simples de gerenciamento de uma loja, utilizando classes, encapsulamento, herança, polimorfismo e outros conceitos chave da POO em C++.
### Exemplo de Sistema de Gerenciamento de Loja em C++
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// Classe base para produtos vendidos na loja
class Produto {
protected:
 string nome;
 double preco;
public:
 Produto(string nome, double preco) : nome(nome), preco(preco) {}
 virtual void descrever() {
 cout << "Produto: " << nome << ", Preço: $" << preco << endl;
 }
 virtual double calcularDesconto() {
 return preco;
 }
 virtual ~Produto() {}
};
// Subclasse de Produto para produtos eletrônicos
class Eletronico : public Produto {
private:
 string marca;
public:
 Eletronico(string nome, double preco, string marca) : Produto(nome, preco), marca(marca) {}
 void descrever() override {
 cout << "Eletrônico: " << nome << " da marca " << marca << ", Preço: $" << preco << endl;
 }
 double calcularDesconto() override {
 // Exemplo de desconto para eletrônicos
 return preco * 0.9; // 10% de desconto
 }
};
// Classe para representar um cliente da loja
class Cliente {
private:
 string nome;
 int idade;
public:
 Cliente(string nome, int idade) : nome(nome), idade(idade) {}
 void mostrarInfo() {
 cout << "Cliente: " << nome << ", Idade: " << idade << " anos" << endl;
 }
};
// Classe principal que gerencia a loja
class Loja {
private:
 string nome;
 vector<Produto*> estoque;
public:
 Loja(string nome) : nome(nome) {}
 void adicionarProduto(Produto* produto) {
 estoque.push_back(produto);
 cout << "Produto adicionado ao estoque da loja." << endl;
 }
 void mostrarEstoque() {
 cout << "Estoque da Loja " << nome << ":" << endl;
 for (auto produto : estoque) {
 produto->descrever();
 }
 }
 Produto* buscarProdutoPorNome(string nome) {
 for (auto produto : estoque) {
 if (produto->nome == nome) {
 return produto;
 }
 }
 return nullptr;
 }
 ~Loja() {
 for (auto produto : estoque) {
 delete produto;
 }
 }
};
int main() {
 // Criando produtos
 Produto* produto1 = new Produto("Livro", 29.99);
 Produto* produto2 = new Eletronico("Smartphone", 699.99, "Samsung");
 // Criando cliente
 Cliente cliente("Alice", 30);
 // Criando loja
 Loja loja("Minha Loja");
 // Adicionando produtos ao estoque da loja
 loja.adicionarProduto(produto1);
 loja.adicionarProduto(produto2);
 // Mostrando estoque da loja
 loja.mostrarEstoque();
 // Exemplo de interação com cliente
 cliente.mostrarInfo();
 Produto* produtoEncontrado = loja.buscarProdutoPorNome("Smartphone");
 if (produtoEncontrado) {
 cout << "Produto encontrado: ";
 produtoEncontrado->descrever();
 } else {
 cout << "Produto não encontrado." << endl;
 }
 // Liberando memória alocada dinamicamente
 delete produto1;
 delete produto2;
 return 0;
}
```
### Explicação do Código
1. **Classes e Objetos:**
 - `Produto`, `Eletronico`, `Cliente`, `Loja` são classes que representam entidades do sistema.
 - `Produto` é uma classe base abstrata com métodos virtuais `descrever()` e `calcularDesconto()`.
 - `Eletronico` é uma subclasse de `Produto` que sobrescreve esses métodos para especificar comportamentos diferentes.
2. **Herança:**
 - `Eletronico` herda de `Produto`, demonstrando o conceito de herança em POO.
3. **Encapsulamento:**
 - Atributos como `nome`, `preco`, `marca` são encapsulados nas classes correspondentes (`Produto`, `Eletronico`, `Cliente`).
4. **Polimorfismo:**
 - Os métodos `descrever()` e `calcularDesconto()` são exemplos de polimorfismo, onde comportamentos diferentes são definidos para objetos de tipos diferentes (`Produto` e `Eletronico`).
5. **Operações do Sistema:**
 - Métodos como `adicionarProduto()`, `mostrarEstoque()`, `buscarProdutoPorNome()` exemplificam operações típicas de uma loja, aplicando os conceitos de POO de forma prática em C++.
### Conclusão
Este exemplo ilustra como a programação orientada a objetos pode ser aplicada em C++ para criar sistemas estruturados e eficientes, como um sistema de gerenciamento de loja. A POO em C++ oferece vantagens como reutilização de código, encapsulamento de dados, herança e polimorfismo, que facilitam o desenvolvimento de software complexo e escalável. Integrar esses conceitos em projetos de TI pode melhorar a organização, manutenção e eficiência dos sistemas, atendendo às exigências crescentes e dinâmicas do mundo moderno de desenvolvimento de software.

Mais conteúdos dessa disciplina