HomeSharpStack
cpp5 min

Introdução à Programação Orientada a Objetos em C++

Introdução à Programação Orientada a Objetos em C++

A Programação Orientada a Objetos (POO) é um jeito de organizar seu código usando classes e objetos. Em vez de escrever funções soltas, você agrupa dados e comportamentos relacionados em unidades chamadas classes. Isso torna o código mais organizado, reutilizável e fácil de manter.

O que é uma Classe?

Uma classe é como um molde ou planta para criar objetos. Ela define quais dados (variáveis) e comportamentos (funções) um objeto terá. Por exemplo, você pode criar uma classe Carro que descreve o que todo carro tem: marca, cor, velocidade.

class Carro {
public:
    string marca;
    string cor;
    int velocidade;
};

O que é um Objeto?

Um objeto é uma instância de uma classe. Se a classe é o molde, o objeto é o resultado de usar esse molde. Você pode criar vários objetos da mesma classe, cada um com valores diferentes.

Carro meuCarro;      // Criando um objeto
meuCarro.marca = "Toyota";
meuCarro.cor = "azul";
meuCarro.velocidade = 0;

Construtores: Inicializando Objetos

Um construtor é uma função especial que é chamada automaticamente quando você cria um objeto. Ele serve para inicializar os dados do objeto com valores padrão ou valores que você fornece. O construtor tem o mesmo nome da classe.

class Carro {
public:
    string marca;
    int velocidade;
    
    // Construtor
    Carro(string m) {
        marca = m;
        velocidade = 0;
    }
};

// Usando o construtor
Carro meuCarro("Honda");

Métodos: Comportamentos do Objeto

Além de dados, as classes podem ter métodos (funções dentro da classe) que definem o que o objeto pode fazer. Por exemplo, um carro pode acelerar ou frear.

class Carro {
public:
    string marca;
    int velocidade;
    
    Carro(string m) {
        marca = m;
        velocidade = 0;
    }
    
    // Método para acelerar
    void acelerar() {
        velocidade += 10;
    }
    
    // Método para frear
    void frear() {
        velocidade -= 10;
    }
};

Usando Objetos com Métodos

Carro meuCarro("Ford");
meuCarro.acelerar();  // velocidade vira 10
meuCarro.acelerar();  // velocidade vira 20
meuCarro.frear();     // velocidade vira 10

Encapsulamento: Protegendo Dados

Em POO, é comum usar private e public para controlar quem pode acessar os dados. public significa que qualquer um pode acessar; private significa que só a classe pode acessar. Isso protege seus dados de mudanças indevidas.

class Carro {
private:
    int velocidade;  // Só a classe pode acessar
    
public:
    string marca;    // Qualquer um pode acessar
    
    Carro(string m) {
        marca = m;
        velocidade = 0;
    }
    
    void acelerar() {
        velocidade += 10;
    }
};

Por que usar POO?

Organização: Dados relacionados ficam juntos. Reutilização: Você cria uma classe uma vez e usa em vários lugares. Manutenção: Mudanças em um lugar afetam tudo que usa aquela classe. Segurança: Você controla como os dados são acessados.

Resumo Prático

Pense em POO assim: uma classe é um projeto, um objeto é uma coisa real criada a partir desse projeto, um construtor prepara o objeto quando ele nasce, e métodos são as ações que o objeto pode fazer.

Key Takeaways

  • Classes são moldes que definem dados e comportamentos; objetos são instâncias reais criadas a partir dessas classes
  • Construtores inicializam automaticamente os dados de um objeto quando ele é criado, garantindo que comece em um estado válido
  • Métodos são funções dentro de classes que definem o que os objetos podem fazer, e encapsulamento (public/private) protege os dados

Enjoyed this reading?

SharpStack delivers personalized tech readings every day, calibrated to your skill level. 5 minutes a day to stay sharp.

“Stay sharp. At your pace. Everyday.”

Introdução à Programação Orientada a Objetos em C++ — SharpStack