Fundamentos de Programación en C++: Sintaxis, Estructuras y Programación Orientada a Objetos
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 5,83 KB
Estructura Básica y Tipos de Datos en C++
Para comenzar cualquier programa en C++, es fundamental incluir la librería estándar y definir el espacio de nombres:
#include <iostream>
using namespace std;
El punto de entrada de toda aplicación es la función main:
int main() {
cout << "Hola";
return 0;
}
Declaración de Variables y Tipos de Datos
C++ permite manejar diversos tipos de datos para almacenar información:
- int a = 10; (Entero)
- float b = 3.5; (Punto flotante)
- double c = 2.345; (Doble precisión)
- char d = 'A'; (Carácter)
- string e = "Hola"; (Cadena de texto)
- bool f = true; (Booleano)
Entrada y Salida de Datos
Para interactuar con el usuario a través de la consola:
cin >> x;
cout << x;
cout << "valor: " << x << endl;
Operadores
El lenguaje soporta operadores aritméticos, relacionales y lógicos:
+ - * / % (Aritméticos)== != > < >= <= (Relacionales)&& || ! (Lógicos)
Estructuras de Control
Condicionales
Permiten la toma de decisiones en el flujo del programa:
if(condicion) {
// código
} else if(condicion) {
// código
} else {
// código
}
Para múltiples opciones basadas en una variable:
switch(x) {
case 1: break;
case 2: break;
default: break;
}
Bucles e Iteraciones
- for:
for(int i=0; i<n; i++) { } - while:
while(condicion) { } - do-while:
do { } while(condicion);(Se ejecuta al menos 1 vez).
Funciones y Recursividad
Definición de Funciones
Las funciones permiten modularizar el código:
tipo nombre(parametros) {
return valor;
}
Ejemplo: int suma(int a, int b) { return a + b; }
Uso: int r = suma(2, 3);
Recursividad
Una función que se llama a sí misma para resolver problemas complejos:
tipo funcion(parametros) {
if(caso_base) return valor;
else return funcion(parametros_modificados);
}
Arreglos y Cadenas de Caracteres
Arreglos (Arrays)
Colecciones de datos del mismo tipo:
int a[5];
int b[5] = {1, 2, 3, 4, 5};
a[0] = 10;
Recorrer un arreglo: for(int i=0; i<5; i++) { cout << a[i]; }
Cadenas de Caracteres (Estilo C)
Crear un string mediante un arreglo de caracteres:
char texto[] = {'H', 'o', 'l', 'a', '\0'};
Recorrer char: for(int i=0; texto[i] != '\0'; i++) { cout << texto[i]; }
Punteros y Gestión de Memoria
Punteros y Referencias
Los punteros almacenan direcciones de memoria:
int x = 10;
int *p = &x; // (&x → dirección, *p → valor apuntado)
cout << *p;
Referencias: int x = 10; int &ref = x; ref = 20; (Ahora x vale 20).
Memoria Dinámica
Permite asignar memoria durante la ejecución:
int *p;
p = new int;
*p = 10;
cout << *p;
delete p;
Matrices Dinámicas
Para crear una matriz dinámica:
int **matriz;
matriz = new int*[filas];
for(int i=0; i<filas; i++)
matriz[i] = new int[columnas];
Liberación de memoria:
for(int i=0; i<filas; i++)
delete[] matriz[i];
delete[] matriz;
Recorrer Arreglos con Punteros
int a[5] = {1, 2, 3, 4, 5};
int *p = a;
for(int i=0; i<5; i++)
cout << *(p + i);
Programación Orientada a Objetos (POO)
Clases y Objetos
Definición de una clase básica:
class Persona {
public:
string nombre;
int edad;
void saludar() { cout << "Hola " << nombre; }
};
Uso de Objeto: Persona p; p.nombre = "Luis"; p.saludar();
Constructores y Encapsulamiento
class Persona {
public:
Persona() { cout << "Objeto creado"; }
Persona(int n) { edad = n; }
private:
double saldo;
public:
double getSaldo() { return saldo; } // Encapsular: Poner en private para protegerlo
};
Herencia
Permite crear clases basadas en otras existentes:
class Animal {
public:
void comer() { cout << "comiendo"; }
};
class Perro : public Animal {
public:
void ladrar() { cout << "guau"; }
};
Uso: Perro p; p.comer(); p.ladrar();
Polimorfismo
Capacidad de una función para comportarse de forma distinta según el objeto:
// Clase BASE
class Animal {
public:
virtual void sonido() { cout << "sonido animal"; }
};
// Clases HIJAS
class Perro : public Animal {
public:
void sonido() { cout << "guau"; }
};
Uso de Polimorfismo: Animal* a; Perro p; a = &p; a->sonido();