Introducción
En este módulo, aprenderemos sobre uno de los conceptos fundamentales de la Programación Orientada a Objetos (POO): las clases y los objetos. Estos conceptos son esenciales para estructurar y organizar el código de manera eficiente y modular.
Objetivos
- Comprender qué son las clases y los objetos.
- Aprender a definir y utilizar clases en C++.
- Entender la relación entre clases y objetos.
- Implementar ejemplos prácticos de clases y objetos.
Conceptos Clave
Clases
Una clase es una plantilla o un plano para crear objetos. Define un conjunto de propiedades (atributos) y métodos (funciones) que los objetos creados a partir de la clase pueden tener.
Objetos
Un objeto es una instancia de una clase. Cuando se crea un objeto, se asigna memoria para almacenar sus atributos y se pueden utilizar sus métodos.
Definición de una Clase
En C++, una clase se define utilizando la palabra clave class
, seguida del nombre de la clase y un bloque de código que contiene los atributos y métodos.
class Persona { public: // Atributos std::string nombre; int edad; // Métodos void mostrarInformacion() { std::cout << "Nombre: " << nombre << ", Edad: " << edad << std::endl; } };
Explicación del Código
class Persona
: Define una nueva clase llamadaPersona
.public
: Especifica que los miembros siguientes son accesibles desde fuera de la clase.std::string nombre
: Un atributo de tipo cadena para almacenar el nombre de la persona.int edad
: Un atributo de tipo entero para almacenar la edad de la persona.void mostrarInformacion()
: Un método que imprime la información de la persona.
Creación de Objetos
Para crear un objeto de una clase, se declara una variable de tipo de la clase y se utiliza el operador de punto (.
) para acceder a sus atributos y métodos.
int main() { // Crear un objeto de la clase Persona Persona persona1; // Asignar valores a los atributos persona1.nombre = "Juan"; persona1.edad = 30; // Llamar al método persona1.mostrarInformacion(); return 0; }
Explicación del Código
Persona persona1;
: Crea un objeto llamadopersona1
de la clasePersona
.persona1.nombre = "Juan";
: Asigna el valor "Juan" al atributonombre
del objetopersona1
.persona1.edad = 30;
: Asigna el valor 30 al atributoedad
del objetopersona1
.persona1.mostrarInformacion();
: Llama al métodomostrarInformacion
del objetopersona1
.
Ejercicio Práctico
Ejercicio 1
Define una clase Coche
con los siguientes atributos y métodos:
-
Atributos:
marca
(cadena)modelo
(cadena)año
(entero)
-
Métodos:
mostrarDetalles()
: Imprime los detalles del coche.
Crea un objeto de la clase Coche
, asigna valores a sus atributos y llama al método mostrarDetalles
.
Solución
#include <iostream> #include <string> class Coche { public: std::string marca; std::string modelo; int año; void mostrarDetalles() { std::cout << "Marca: " << marca << ", Modelo: " << modelo << ", Año: " << año << std::endl; } }; int main() { // Crear un objeto de la clase Coche Coche coche1; // Asignar valores a los atributos coche1.marca = "Toyota"; coche1.modelo = "Corolla"; coche1.año = 2020; // Llamar al método coche1.mostrarDetalles(); return 0; }
Explicación del Código
class Coche
: Define una nueva clase llamadaCoche
.std::string marca; std::string modelo; int año;
: Define los atributosmarca
,modelo
yaño
.void mostrarDetalles()
: Define un método que imprime los detalles del coche.Coche coche1;
: Crea un objeto llamadocoche1
de la claseCoche
.coche1.marca = "Toyota"; coche1.modelo = "Corolla"; coche1.año = 2020;
: Asigna valores a los atributos del objetocoche1
.coche1.mostrarDetalles();
: Llama al métodomostrarDetalles
del objetocoche1
.
Conclusión
En esta sección, hemos aprendido sobre las clases y los objetos en C++. Hemos visto cómo definir una clase, crear objetos y utilizar sus atributos y métodos. Estos conceptos son fundamentales para la Programación Orientada a Objetos y nos permitirán estructurar nuestro código de manera más eficiente y modular.
En el próximo tema, exploraremos los constructores y destructores, que son métodos especiales utilizados para inicializar y limpiar objetos.
Curso de Programación en C++
Módulo 1: Introducción a C++
- Introducción a C++
- Configuración del Entorno de Desarrollo
- Sintaxis y Estructura Básica
- Variables y Tipos de Datos
- Entrada y Salida
Módulo 2: Estructuras de Control
Módulo 3: Funciones
- Introducción a las Funciones
- Parámetros de Función y Tipos de Retorno
- Sobrecarga de Funciones
- Recursión
Módulo 4: Arreglos y Cadenas
- Introducción a los Arreglos
- Arreglos Multidimensionales
- Introducción a las Cadenas
- Manipulación de Cadenas
Módulo 5: Punteros y Referencias
- Introducción a los Punteros
- Aritmética de Punteros
- Punteros y Arreglos
- Referencias
- Asignación Dinámica de Memoria
Módulo 6: Programación Orientada a Objetos
- Introducción a la POO
- Clases y Objetos
- Constructores y Destructores
- Herencia
- Polimorfismo
- Encapsulación y Abstracción
Módulo 7: Temas Avanzados
- Plantillas
- Manejo de Excepciones
- Entrada/Salida de Archivos
- Biblioteca Estándar de Plantillas (STL)
- Expresiones Lambda
- Multihilo