Sintaxis Básica del Lenguaje C++

C++ es un lenguaje compilado de propósito general, estáticamente tipado, que soporta programación procedimental, orientada a objetos y genérica. Dominar su sintaxis fundamental es esencial para escribir código eficiente y libre de errores. Este artículo cubre los elementos sintácticos esenciales, desde la estructura básica de un programa hasta los conceptos fundamantales de la programación orientada a objetos.

Estructura Fundamental de un Programa

Toda aplicación C++ comienza su ejecución en la función main. Un ejemplo elemental que calcula el cuadrado de un número podría verse así:

#include <iostream>

int main() {
    int numero = 5;
    int cuadrado = numero * numero;
    std::cout << "El cuadrado de " << numero << " es: " << cuadrado << std::endl;
    return 0;
}

La directiva #include <iostream> incorpora la biblioteca estándar de entrada/salida. La función main debe devolver un entero; cero generalmente indica una ejecución exitosa.

Comentarios y Nombres de Identificadores

Los comentarios ayudan a documentar el código. Se pueden usar de dos formas: comentarios de una sola línea con // y comentarios de múltiples líneas encerrados entre /* y */.

Los identificadores (nombres para variables, funciones, clases, etc.) deben comenzar con una letra o un guion bajo (_). Pueden contener letras, dígitos y guiones bajos, y son sensibles a mayúsculas y minúsculas. No pueden coincidir con palabras reservadas del lenguaje.

Palabras Reservadas

C++ reserva un conjunto de palabras clave (for, while, class, return, if, else, etc.) que tienen un significado especial para el compilador y no pueden ser utilizadas como identificadores. Existe un conjunto extenso que incluye especificadores de tipo, modificadores de acceso y operadores.

Tipos de Datos y Declaración de Variables

El lenguaje proporciona tipos de datos fundamentales como:

  • int: números enteros.
  • double o float: números en punto flotante.
  • char: un solo carácter.
  • bool: valores de verdad (true o false).

Las variables se declaran especificando el tipo seguido del nombre. Ejemplo: double temperatura; o char inicial;.

Operadores

Los operadores permiten realizar cálculos y comparaciones. Incluyen operadores aritméticos (+, -, *, /, %), relacionales (==, !=, <, >), lógicos (&&, ||, !) y de asignación compuesta (+=, -=, etc.).

Estructuras de Control del Flujo

Para dirigir la ejecución del programa, se utliizan estructuras condicionales y bucles.

// Ejemplo de bucle for con lógica diferente
for (int contador = 10; contador >= 1; contador -= 2) {
    std::cout << contador << " ";
}

Las estructuras if-else evalúan condiciones. Los bucles while y do-while repiten código mientras se cumpla una condición. Las sentencias break (sale del bucle) y continue (salta a la siguiente iteración) alteran el flujo normal.

Funciones

Las funciones encapsulan bloques de código reutilizable. Se definen con un tipo de retorno, un nombre y opcionalmente parámetros.

// Función que calcula el producto de dos números
double calcularProducto(double a, double b) {
    return a * b;
}

// Ejemplo de uso
int main() {
    double precio = 19.99;
    int cantidad = 3;
    double total = calcularProducto(precio, cantidad);
    std::cout << "Total: " << total << std::endl;
    return 0;
}

Entrada y Salida de Datos

Para la interacción con el usuario, C++ utiliza flujos de entrada/salida de la biblioteca <iostream>.

std::string nombre;
std::cout << "Ingrese su nombre: ";
std::cin >> nombre;
std::cout << "Hola, " << nombre << "!" << std::endl;

Alternativamente, se pueden usar las funciones de C scanf y printf de <cstdio>, que suelen ofrecer mayor control de formato y, en algunos contextos, mejor rendimiento.

Clases y Objetos: Introducción a la POO

C++ soporta la programación orientada a objetos. Una clase es un plano que define propiedades (datos miembro) y comportamientos (funciones miembro).

#include <iostream>
#include <string>

class CuentaBancaria {
private:
    std::string titular;
    double saldo;

public:
    // Constructor
    CuentaBancaria(std::string t, double s) : titular(t), saldo(s) {}

    void depositar(double cantidad) {
        if (cantidad > 0) saldo += cantidad;
    }

    void mostrarSaldo() const {
        std::cout << "Saldo de " << titular << ": $" << saldo << std::endl;
    }
};

int main() {
    CuentaBancaria miCuenta("Ana López", 1000.50);
    miCuenta.depositar(250.75);
    miCuenta.mostrarSaldo();
    return 0;
}

Se crea un objeto (miCuenta) a partir de la clase CuentaBancaria. Se puede interactuar con sus métodos públicos (depositar, mostrarSaldo), mientras que los datos privados están protegidos.

Otros Elementos Sintácticos Relevantes

  • Preprocesador: Además de #include, la directiva #define permite definir macros para sustitución textual.
  • Espacios de Nombres: Ayudan a organizar el código y evitar colisiones de nombres. Se accede a los elementos con el operador :: (ej. std::cout).
  • Punteros y Referencias: Mecanismos para el manejo directo de memoria y el paso por referencia de parámetros.

Publicado el 7-3 17:25