0. Introducción al Curso C++

0. Introducción al Curso C++

¡Hola lectores! Hoy les traigo un pequeño curso que espero sea de su agrado, especialmente para aquellos que se inician en este maravilloso lenguaje de programación.

He intentado que los ejemplos que ilustran cada capítulo sean compatibles con cualquier versión de compilador. Sin embargo, les cuento que yo he usado el compilador MinGW (Minimalist GNU for Windows), que es una versión para Windows del compilador GCC para Unix y Linux. Este compilador está adaptado para crear programas en Windows, pero cualquier programa que siga el estándar de C++ debería funcionar con este compilador en Windows y Linux.

Para hacer más cómodo el desarrollo de nuestros programas, recomiendo usar un IDE (Entorno de Desarrollo Integrado), como Dev-C++ de Bloodshed o Code::Blocks, ambos perfectos para crear programas en modo consola.

Vale aclarar que los programas de Windows tienen dos modos para interactuar con el usuario:

  • Modo consola: Simula el funcionamiento de una ventana MS-DOS y trabaja en modo de texto. En este modo, la ventana funciona como una especie de tabla donde cada casilla puede contener un solo carácter. No permite usar gráficos de alta resolución, pero esto no representa una gran pérdida para nosotros, ya que C y C++ no incluyen por defecto herramientas para trabajar con gráficos. Esto se logra mediante bibliotecas externas.

  • Modo GUI (Interfaz Gráfica de Usuario): Este es el modo tradicional de los programas de Windows, con ventanas, menús, íconos, etc. La creación de este tipo de programas se explica en otro curso, y requiere conocimientos sobre la biblioteca de funciones WinAPI32.

Para quienes trabajan en otros entornos, como Linux, Unix o Mac, el entorno Dev-C++ no será compatible, ya que está diseñado para Windows. Sin embargo, todos los sistemas operativos cuentan con compiladores de C++ que soportan la norma ANSI, que es el estándar que buscaremos seguir para garantizar la compatibilidad de nuestros programas en cualquier sistema operativo.

Compiladores y la Norma ANSI

El ANSI define un conjunto de reglas que cualquier compilador de C o C++ debe cumplir para ser considerado como tal. Estas reglas determinan cómo deben comportarse las palabras reservadas, los elementos del lenguaje y las funciones externas incluidas. Si un programa está escrito siguiendo el estándar ANSI, debería poder compilarse en cualquier compilador que cumpla con esta norma.

Aunque todos los compiladores suelen incluir características adicionales no estándar (como bibliotecas gráficas), mientras no usemos esas funcionalidades, nuestros programas serán portables, es decir, funcionarán en cualquier ordenador y sistema operativo.

Proceso de Obtención de un Programa Ejecutable

Probablemente sea un buen momento para explicar cómo se obtiene un fichero ejecutable a partir de un programa C++.

Código Fuente y Fichero Fuente

Los programas en C y C++ se escriben con la ayuda de un editor de textos, como si fuera un documento cualquiera. Estos ficheros que contienen el código del programa se conocen como ficheros fuente, y el texto en su interior es el código fuente. Nosotros siempre escribiremos programas fuente y los guardaremos en ficheros fuente.

Compiladores vs. Intérpretes

C y C++ son lenguajes compilados, no interpretados. La diferencia entre ambos enfoques es importante:

  • En un lenguaje interpretado, como BASIC o Java, el programa fuente es procesado por un intérprete que traduce y ejecuta el programa en tiempo real, línea a línea.

  • En los lenguajes compilados, el código fuente se traduce una sola vez, generando un fichero ejecutable que puede correr de forma autónoma sin necesidad del compilador.

Los lenguajes compilados tienden a ser más rápidos y requieren menos recursos que los lenguajes interpretados, ya que el proceso de traducción ocurre sólo una vez.

Ficheros Objeto y Bibliotecas

Cuando compilamos un programa, el compilador genera un fichero objeto, que es una traducción del código fuente en un formato comprensible para el ordenador. Para que el programa sea ejecutable, este fichero objeto debe ser combinado con otras bibliotecas (que contienen código reutilizable, como funciones para leer el teclado o escribir en pantalla) mediante un proceso conocido como enlazado.

El enlazador es el programa encargado de unir todos los ficheros objeto y las bibliotecas necesarias para crear un fichero ejecutable.

Errores Comunes en Programación C++

Durante el proceso de creación de programas, es normal cometer errores. Estos errores se dividen en varias categorías:

  • Errores de sintaxis: Ocurren cuando escribimos mal alguna parte del código fuente. Estos errores se detectan durante la fase de compilación.

  • Avisos (warnings): Son errores menores que no impiden la generación del código objeto, pero deben ser corregidos para evitar comportamientos inesperados.

  • Errores de enlazado: Suceden cuando faltan definiciones de funciones o variables que deberían estar en los ficheros objeto o bibliotecas.

  • Errores de ejecución: Se producen cuando el programa se ejecuta, a veces provocando que termine bruscamente. Estos errores son más difíciles de detectar y corregir.

  • Errores de diseño: Los más difíciles de evitar, ya que ocurren debido a fallos en el enfoque o la lógica del programa.