Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Classes e Objetos em C++: Guia Prático de Programação Orientada a Objetos

Classes e Objetos em C++

Descubra como encapsular dados e comportamento em C++ usando classes e objetos, com exemplos claros e boas práticas.

Por que Usar Classes?

Em lições anteriores exploramos funções e variáveis. À medida que projetos crescem, agrupar dados e operações relacionadas torna-se essencial para manutenibilidade e clareza. Uma classe permite agrupar membros de dados e funções membro em uma única unidade lógica, permitindo programação orientada a objetos (POO) — a base do design moderno em C++.

Ilustração: Uma Sala

Considere uma sala retangular. Você precisa armazenar seu comprimento, largura e altura enquanto também calcula sua área e volume. Com uma classe, você pode manter esses elementos fortemente acoplados:

class Sala { public: double comprimento; double largura; double altura; double calcularArea() { return comprimento * largura; } double calcularVolume() { return comprimento * largura * altura; } }; 

Definindo uma Classe

Uma classe é definida com a palavra-chave class, seguida por seu nome e um corpo entre chaves, terminando com ponto e vírgula:

class NomeClasse { // membros de dados // funções membro }; 

No exemplo acima, Sala é um modelo. As variáveis dentro são chamadas de membros de dados; as funções são funções membro.

Criando Objetos

Definir uma classe apenas especifica o layout; não aloca memória. Objetos são instâncias concretas criadas a partir desse modelo:

Sala sala1; // objeto único Sala sala2, sala3; // múltiplos objetos em uma declaração 

Objetos podem ser instanciados em qualquer lugar — dentro de funções, outras classes ou globalmente — desde que seu escopo seja respeitado.

Acessando Membros

Use o operador ponto (.) para chamar funções membro ou acessar membros de dados:

sala1.comprimento = 5.5; double area = sala1.calcularArea(); 

Exemplo 1: Calculando Métricas de Sala

#include <iostream> using namespace std; class Sala { public: double comprimento; double largura; double altura; double calcularArea() { return comprimento * largura; } double calcularVolume() { return comprimento * largura * altura; } }; int main() { Sala sala1; sala1.comprimento = 42.5; sala1.largura = 30.8; sala1.altura = 19.2; cout << "Área da Sala = " << sala1.calcularArea() << endl; cout << "Volume da Sala = " << sala1.calcularVolume() << endl; return 0; } 

Saída

Área da Sala = 1309 Volume da Sala = 25132.8

Encapsulamento: Public vs Private

Encapsulamento protege dados controlando acesso. Membros declarados como private são ocultados do mundo externo e só podem ser acessados via funções membro públicas.

class Teste { private: int a; void funcao1() {} public: int b; void funcao2() {} }; 

No exemplo a seguir, membros de dados são privados e inicializados através de um método público:

#include <iostream> using namespace std; class Sala { private: double comprimento; double largura; double altura; public: void inicializarDados(double comp, double larg, double alt) { comprimento = comp; largura = larg; altura = alt; } double calcularArea() { return comprimento * largura; } double calcularVolume() { return comprimento * largura * altura; } }; int main() { Sala sala1; sala1.inicializarDados(42.5, 30.8, 19.2); cout << "Área da Sala = " << sala1.calcularArea() << endl; cout << "Volume da Sala = " << sala1.calcularVolume() << endl; return 0; } 

Saída

Área da Sala = 1309 Volume da Sala = 25132.8

Leitura Adicional

Para diretrizes autoritativas, consulte o padrão ISO/IEC 14882:2023 C++ ou recursos confiáveis como cplusplus.com e cppreference.com.

Linguagem C

  1. Classes e Objetos em C#: Fundamentos para POO Robusta
  2. Dominando Classes e Métodos Abstratos em C#: Guia Prático
  3. Entendendo Classes e Métodos Parciais em C#
  4. Dominando Classes e Métodos Sealed em C#: Quando Usar, Exemplos Claros e Segurança de Código
  5. Funções Amigas e Classes Amigas em C++: Dominando o Controle de Acesso
  6. Dominando Templates de Classe em C++: Um Guia Prático
  7. Classes e Objetos em Java: Guia Prático
  8. Estruturas vs Classes em C++: Guia Prático para Desenvolvedores Embarcados
  9. C++ Struct vs Class: Diferenças Principais, Sintaxe e Melhores Casos de Uso
  10. Entendendo Classes de Armazenamento em C++: Escopo, Tempo de Vida e Uso