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 llamadopersona1de la clasePersona.persona1.nombre = "Juan";: Asigna el valor "Juan" al atributonombredel objetopersona1.persona1.edad = 30;: Asigna el valor 30 al atributoedaddel objetopersona1.persona1.mostrarInformacion();: Llama al métodomostrarInformaciondel 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,modeloyaño.void mostrarDetalles(): Define un método que imprime los detalles del coche.Coche coche1;: Crea un objeto llamadocoche1de la claseCoche.coche1.marca = "Toyota"; coche1.modelo = "Corolla"; coche1.año = 2020;: Asigna valores a los atributos del objetocoche1.coche1.mostrarDetalles();: Llama al métodomostrarDetallesdel 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
