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
3.4 Función Main
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.
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
Publicar un comentario