Carregando
0x60Lição 7 de 9

Modele dados com classes

Encapsule o estado e preserve invariantes válidas dos objetos.

16 min Questionário com 5 perguntas 1 exercício de código
Ao final desta lição, você saberá
  • Definir uma classe com estado privado, um construtor e comportamento público.

Uma classe define um tipo que agrupa estado e operações. Mantenha os detalhes de implementação privados e exponha uma interface pública pequena. Um construtor estabelece a invariante inicial do objeto; as listas de inicialização de membros inicializam os campos diretamente. Em C++, structs e classes são parecidas, exceto que os membros de uma struct são públicos por padrão e os de uma class são privados por padrão.

main.cpp · C++20
1#include <iostream>
2#include <string>
3
4class Counter {
5public:
6    explicit Counter(std::string label) : label_(label), value_(0) {}
7    void increment() { ++value_; }
8    void print() const { std::cout << label_ << ": " << value_ << "\n"; }
9private:
10    std::string label_;
11    int value_;
12};
Saída
Counter keeps its state private and exposes operations.

O const depois de print() promete que o método não modifica o estado observável do objeto. explicit impede uma conversão implícita acidental de uma string para um Counter.

Principais conclusões

  • O encapsulamento protege as invariantes dos objetos.

  • Inicialize os membros nos construtores.

  • Funções-membro const permitem acesso só de leitura.

Quiz da aula

5 perguntas · aprovação com 4 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Pratique: escreva código em C++

Escreva C++20 no editor e execute com entradas de exemplo. O GCC 14 compila o código pelo Compiler Explorer, um serviço público gratuito; seu código-fonte e a entrada de teste são enviados para lá.

Exercício 1

Crie uma pequena classe de contador

+25 XP

Implemente um Counter com um inteiro privado, um método público increment() e um acessor value() const. Leia uma quantidade, incremente essa quantidade de vezes e imprima o valor final.

  • Três incrementos
  • Nenhum incremento
main.c
Carregando editor…

Seu código é compilado como C++20 com gcc 14 (-Wall -Wextra) e executado no Compiler Explorer (godbolt.org), um serviço público gratuito.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…