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();

Entradas relacionadas: