Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Clases y Objetos en C++: Guía Práctica de Programación Orientada a Objetos

Clases y Objetos en C++

Descubre cómo encapsular datos y comportamiento en C++ usando clases y objetos, con ejemplos claros y mejores prácticas.

¿Por Qué Usar Clases?

En lecciones anteriores exploramos funciones y variables. A medida que los proyectos crecen, agrupar datos y operaciones relacionados se vuelve esencial para la mantenibilidad y claridad. Una clase te permite agrupar miembros de datos y funciones miembro en una sola unidad lógica, habilitando la programación orientada a objetos (POO) —la base del diseño moderno en C++.

Ilustración: Una Habitación

Considera una habitación rectangular. Necesitas almacenar su longitud, anchura y altura mientras también calculas su área y volumen. Con una clase, puedes mantener estos fuertemente acoplados:

class Habitación { public: double longitud; double anchura; double altura; double calcularArea() { return longitud * anchura; } double calcularVolumen() { return longitud * anchura * altura; } }; 

Definiendo una Clase

Una clase se define con la palabra clave class, seguida de su nombre y un cuerpo encerrado entre llaves, terminando con punto y coma:

class NombreClase { // miembros de datos // funciones miembro }; 

En el ejemplo anterior, Habitación es un modelo. Las variables dentro se llaman miembros de datos; las funciones son funciones miembro.

Creando Objetos

Definir una clase solo especifica el diseño; no asigna memoria. Los objetos son instancias concretas creadas a partir de ese modelo:

Habitación habitación1; // objeto único Habitación habitación2, habitación3; // múltiples objetos en una declaración 

Los objetos pueden instanciarse en cualquier lugar —dentro de funciones, otras clases o globalmente— siempre que se respete su ámbito.

Accediendo a Miembros

Usa el operador punto (.) para llamar a funciones miembro o acceder a miembros de datos:

habitación1.longitud = 5.5; double area = habitación1.calcularArea(); 

Ejemplo 1: Calculando Métricas de Habitación

#include <iostream> using namespace std; class Habitación { public: double longitud; double anchura; double altura; double calcularArea() { return longitud * anchura; } double calcularVolumen() { return longitud * anchura * altura; } }; int main() { Habitación habitación1; habitación1.longitud = 42.5; habitación1.anchura = 30.8; habitación1.altura = 19.2; cout << "Área de Habitación = " << habitación1.calcularArea() << endl; cout << "Volumen de Habitación = " << habitación1.calcularVolumen() << endl; return 0; } 

Salida

Área de Habitación = 1309 Volumen de Habitación = 25132.8

Encapsulamiento: Public vs Private

El encapsulamiento protege los datos controlando el acceso. Los miembros declarados como private están ocultos del mundo exterior y solo pueden accederse a través de funciones miembro públicas.

class Prueba { private: int a; void función1() {} public: int b; void función2() {} }; 

En el siguiente ejemplo, los miembros de datos son privados y se inicializan a través de un método público:

#include <iostream> using namespace std; class Habitación { private: double longitud; double anchura; double altura; public: void inicializarDatos(double len, double anch, double alt) { longitud = len; anchura = anch; altura = alt; } double calcularArea() { return longitud * anchura; } double calcularVolumen() { return longitud * anchura * altura; } }; int main() { Habitación habitación1; habitación1.inicializarDatos(42.5, 30.8, 19.2); cout << "Área de Habitación = " << habitación1.calcularArea() << endl; cout << "Volumen de Habitación = " << habitación1.calcularVolumen() << endl; return 0; } 

Salida

Área de Habitación = 1309 Volumen de Habitación = 25132.8

Lecturas Adicionales

Para directrices autoritativas, consulta el estándar ISO/IEC 14882:2023 de C++ o recursos confiables como cplusplus.com y cppreference.com.

Lenguaje C

  1. Estructuras vs Clases en C++: Guía práctica para desarrolladores embebidos
  2. Clases y objetos en C#: Fundamentos para POO robusta
  3. Dominando clases y métodos abstractos en C#: Guía práctica
  4. Entendiendo clases y métodos parciales en C#
  5. Dominando clases y métodos sealed en C#: Cuándo usarlos, ejemplos claros y mejora de seguridad y rendimiento
  6. Funciones y clases amigas en C++: dominando el control de acceso
  7. Dominando las plantillas de clase en C++: guía práctica
  8. Struct vs Class en C++: Diferencias Clave, Sintaxis y Mejores Casos de Uso
  9. Entendiendo las Clases de Almacenamiento en C++: Alcance, Vida y Uso
  10. Guía Completa de Fecha y Hora en C++
  11. Clases y Objetos en Java: Guía Práctica