3. Componentes del  lenguaje C++
El lenguaje de programación C++ está caracterizado por ser de uso general, con una sintaxis sumamente compacta y de alta portabilidad. Es común leer que se caracteriza como un lenguaje de “alto nivel”, maneja los elementos básicos presentes en todas las computadoras: caracteres, números y direcciones. Esta particularidad, junto con el hecho de no poseer operaciones de entrada salida, manejo de arreglo de caracteres, de asignación de memoria, puede al principio parecer un grave defecto; sin embargo el hecho de que estas operaciones se realicen por medio de llamadas a Funciones contenidas en Librerías externas al lenguaje en sí, es el que confiere al mismo su alto grado de portabilidad, independizandolo del “Hardware” sobre el cual corren los programas
Un programa en C++ está definido por funciones (grupo de instrucciones que pueden o no hacer algún cálculo), donde la función principal debe ser llamada main.
 La composición general de un programa en C++ es:
  • Directivas de pre procesamiento.
  • Declaración global.
  • Función main.
  • Funciones definidas por el usuario.

3.1 Directivas
Son los cuales empiezan por el carácter #, son órdenes para el pre procesador de C++ que revisa ciertas tareas previas a la compilación, e incluye funciones de alguna biblioteca como por ejemplo la iostream, la cual es un archivo de cabecera para la entrada o salida en el C + +, dos de los objetos que usa la biblioteca iostream son el cin y el cout, la cual cin es para la entrada y cout para la salida.
Las directivas de preprocesador, tales como #define y #ifdef, se utilizan normalmente para hacer que los programas de origen sean más fáciles de modificar y facilitar la compilación en diferentes entornos de ejecución. Las directivas del archivo de código fuente indican al preprocesador que realice acciones específicas. Por ejemplo, el preprocesador puede reemplazar tokens en el texto, insertar el contenido de otros archivos en el archivo de código fuente o suprimir la compilación de parte del archivo quitando secciones de texto. Las líneas de preprocesador se reconocen y se ejecutan antes de la expansión de macro. Por consiguiente, si una macro se expande en algo que se parezca a un comando de preprocesador, el preprocesador no reconocerá ese comando.
Las instrucciones de preprocesador utilizan el mismo juego de caracteres que las instrucciones del archivo de código fuente, con la excepción de que no se admiten secuencias de escape. El juego de caracteres utilizado en las instrucciones de preprocesador es el mismo que el juego de caracteres de la ejecución. El preprocesador también reconoce valores de caracteres negativos.

El preprocesador reconoce las siguientes directivas: 


3.2 Variable global
Una variable global es, en informática, una variable accesible en todos los ámbitos de un programa informático. Los mecanismos de interacción con variables globales se denominan mecanismos de entorno global. El concepto de entorno global contrasta con el de entorno local donde todas las variables son locales sin memoria compartida (y por ello todas las iteraciones pueden restringirse al intercambio de mensajes).

El uso de este tipo de variables suele considerarse como una mala práctica, por el riesgo que conlleva esa deslocalización: una variable global puede ser modificada en cualquier parte del programa (a menos que resida en una sección de memoria protegida) y cualquier parte del programa depende de ella. Es por ello que una variable global tiene un potencial ilimitado para crear dependencias, factor éste que aumenta la complejidad. Sin embargo, en algunas ocasiones, las variables globales resultan muy útiles. Por ejemplo, se pueden usar para evitar tener que pasar variables usadas muy frecuentemente de forma continua entre diferentes subrutinas.

El uso de variables globales se desaconseja especialmente para lenguajes de programación funcionales (como puede ser Scheme). Viola la transparencia referencial y dificulta la legibilidad del código fuente.

Las variables globales se usan de forma frecuente para pasar información entre diferentes secciones del código que no comparten una relación de "función llamadora" - "función llamada", como ocurre con hilos concurrentes y módulos para el manejo de señales. Los lenguajes de programación donde cada archivo define un espacio de nombres implícito elminan la mayor parte de los problemas de los lenguajes con nombres de espacios globales, aunque pueda haber algunos problemas si no se tiene cuidado a la hora de encapsular el código. Sin las restricciones adecuadas (como por ejemplo con un mutex), el código que usa variables globales no será a prueba de hilos excepto para los valores de sólo lectura en la memoria protegida.

Ejemplo de una variable global en C++:

#include <iostream>

int global = 3; // Esta es la variable global.

void ChangeGlobal()
{
   global = 5; // Se referencia la variable global en una función.
}

int main()
{
   std::cout << global << '\n'; // Se referencia la variable global en una segunda función.
   ChangeGlobal();
   std::cout << global << '\n';
   return 0;
}

3.3 Funciones definidas por el usuario
Las funciones de usuario son, como su nombre indica, las que el propio usuario declara, de igual manera que declara procedimientos. Las funciones nacen con el propósito de ser subprogramas que siempre tienen que devolver algún valor.
Las dos principales diferencias entre procedimientos y funciones son:
Las funciones siempre devuelven un valor al programa que las invocó.
Para llamar a un procedimiento se escribe su nombre en el cuerpo del programa, y si los necesita, se incluyen los parámetros entre paréntesis. Para invocar una función es necesario hacerlo en una expresión.


Las funciones de usuario vienen definidas por un nombre, seguidas de dos paréntesis () entre los que puede haber o no argumentos. Los argumentos son valores que se le pasan a la función cuando se llama.
3.4 Función Main

La función main (). Cada C y C++ debe tener una función de programas de inicio. Los programas de la consola basada en llamar a la función principal en el inicio. Windows GUI llamara la función WinMain en el inicio. Cuando se pone la función de arranquees una cuestión de preferencia. Algunos programadores lugar principal en el principio del archivo, otros al final. Independientemente de su ubicación, los siguientes puntos acerca del principal siempre se aplican.

Comentarios