Fundamentos de Programación en C++: Punteros, Estructuras y Principios SOLID
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 3,74 KB
1. Definición de Clases y Objetos en C++
A continuación, se presenta un ejemplo de cómo definir un nuevo tipo de dato utilizando la Programación Orientada a Objetos (POO):
#include <iostream>
#include <string>
using namespace std;
class Alumno {
public:
string nombre;
int edad;
float promedio;
char grupo;
bool inscrito;
};
int main() {
Alumno obj;
cout << "Clase Alumno creada con 5 atributos exitosamente." << endl;
return 0;
}2. Acceso Indirecto mediante Punteros
Este programa demuestra cómo acceder a los miembros de un objeto utilizando punteros y el operador flecha (->):
#include <iostream>
#include <string>
using namespace std;
class Alumno {
public:
string nombre;
int edad;
float promedio;
char grupo;
bool inscrito;
};
int main() {
Alumno miAlumno;
Alumno *ptrAlumno = &miAlumno;
ptrAlumno->nombre = "Ian";
ptrAlumno->edad = 20;
ptrAlumno->promedio = 9.5;
ptrAlumno->grupo = 'A';
ptrAlumno->inscrito = true;
cout << "Datos del alumno (acceso indirecto):" << endl;
cout << "Nombre: " << ptrAlumno->nombre << endl;
cout << "Edad: " << ptrAlumno->edad << endl;
return 0;
}3. Matriz Tridimensional y Aritmética de Punteros
Para recorrer una matriz de 3x3x3 con un solo ciclo y aritmética de punteros:
int matriz[3][3][3] = {0};
int *ptr = &matriz[0][0][0];
int totalElementos = 3 * 3 * 3;
for(int i = 0; i < totalElementos; i++) {
*(ptr + i) = i;
cout << *(ptr + i) << " ";
}4. Estructuras de Datos: Comparativa
| Elemento | Estructura | Acceso (LIFO/FIFO) | Operación principal |
|---|---|---|---|
| Pila (Stack) | Lineal | LIFO (Last In, First Out) | push / pop |
| Cola (Queue) | Lineal | FIFO (First In, First Out) | enqueue / dequeue |
| Lista | Lineal | Aleatorio/Secuencial | insert / delete |
5. Algoritmos de Ordenamiento: Burbuja
Implementación del método de ordenamiento burbuja simple sobre un arreglo:
for(int i = 0; i < totalElementos - 1; i++) {
for(int j = 0; j < totalElementos - i - 1; j++) {
if(*(ptr + j) > *(ptr + j + 1)) {
int temp = *(ptr + j);
*(ptr + j) = *(ptr + j + 1);
*(ptr + j + 1) = temp;
}
}
}6. Conceptos Fundamentales
- Puntero: Es una variable que almacena la dirección de memoria de otra variable. Sintaxis:
tipo_dato *nombre_puntero;. Ejemplo:int *ptr = №. - Recursividad: Técnica donde una función se llama a sí misma para resolver subproblemas. Requiere un caso base.
- ADT (TDA): Tipo de Dato Abstracto; modelo matemático que define datos y operaciones sin especificar su implementación interna.
7. Principios SOLID: Sustitución de Liskov (LSP)
Este principio establece que los objetos de una clase derivada deben poder sustituir a los de su clase base sin alterar la integridad del sistema. Respetar el LSP garantiza que el código sea modular y que las jerarquías de clase sean consistentes.
8. Representación Binaria
Ejemplo de binario de boleta: 1111000101111000011110000011100