Componentes del Lenguaje C++
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, independizándolo
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: directivos de preprocesamiento, variables globales, función main y
funciones definidas por el usuario.
3.1 Directivas
de Preprocesamiento
Un preprocesador
es un programa separado que es invocado por el compilador antes de
que comience la traducción real. Un preprocesador de este tipo puede eliminar los
comentarios, incluir otros archivos y ejecutar sustituciones de macros. El
preprocesador de C++ es el preprocesador para el lenguaje de programación C. Es
el primer programa invocado por el compilador y procesa directivas como: #include,
#define y #if. Estas directivas no son específicas de C. En realidad pueden ser
usadas con cualquier tipo de archivo. Todas las directivas de preprocesador o
comandos inician con un #.
La
directiva #define se usa para definir
constantes o cualquier sustitución de macro. Crea una macro, que es la asociación de un
identificador o identificador parametrizado con una cadena de token. Una vez
definida la macro, el compilador puede sustituir la cadena de token para cada
aparición del identificador del archivo de código fuente.
La directiva
#if
, con las directivas #elif
, #else
y #endif
, controla la compilación de
partes de un archivo de código fuente. Si la expresión que se escribe (después
de #if
)
tiene un valor distinto de cero, el grupo de líneas inmediatamente después de
la directiva #if
se conserva en la unidad de traducción.
Las directivas #ifdef e #ifndef
realizan la misma tarea que la directiva
#if
cuando se utiliza con defined.
3.2 Variables
globales
Al definir una variable afuera de
cualquier función (incluyendo esto a main() ), estaremos frente a lo denominado
variable global. Este tipo de variable será ubicada en el segmento de datos de
la memoria utilizada por el programa, y existirá todo el tiempo que esté
ejecutándose este.
Son automáticamente inicializadas a cero
cuando el programa comienza a ejecutarse. . Esto no sucede con ninguna variable
local. Son accesibles a todas las funciones que estén declaradas en el mismo,
por lo que cualquiera de ellas podrá actuar sobre el valor de las mismas. El
ámbito temporal de estas variables es también global: se crean junto con el
programa, y se destruyen cuando el programa concluye. Una variable global
declarada después de la definición de una función no será accesible desde esa
función, por eso, normalmente se declaran las variables globales antes de
definir las funciones.
Ejemplo:
int EnteroGlobal; // Declaración de una variable global
3.3 Función Main
en C++
Todo
programa C++ tiene una función main( ) que es el punto inicial de entrada al
programa. Un programa debe tener solo una función main( ). Si se intenta hacer
dos funciones main ( ) se produce un error.
El programa que se presenta como ejemplo
tiene una definición de función y es donde realmente empieza la ejecución:
int main() // la función
main()
{
…
…
return 0;
}
{
…
…
return 0;
}
La definición de la función
está compuesta por la cabecera de la función y por el cuerpo de la función, en
este caso: int main() // la
función main()es la cabecera de la función define el
nombre de la función main())y el tipo de dato devuelto por la función (int).
El cuerpo de la función es el conjunto de sentencias que están encerradas
entre llaves ({}) y que siguen a la cabecera de la función.
Cada instrucción de C++ se denomina sentencia y termina con un punto y coma. La sentencia return actúa como terminación de la función.
Cada instrucción de C++ se denomina sentencia y termina con un punto y coma. La sentencia return actúa como terminación de la función.
La cabecera de la función tiene tres partes: Tipo De Retorno, Nombre De Función y
Argumentos.
-Tipo de Retorno: define el tipo de datos que devuelve la función.
Los valores posibles se verán en detalle cuando se estudien los tipos de datos
del lenguaje.
-Nombre de Función: define el nombre de la función. Un programa C++ puede tener definidas
muchas funciones. Pero sólo una es obligatoria, y esa es la función main().
Como el compilador de C++ considera el uso de las minúsculas y mayúsculas, la
función debe llamarse main() ya que si se denomina Main(), para C++ será otra
función diferente. Debe hacerse siempre una función main() porque es la función
por la que empieza la ejecución del programa y si no existiera, se produciría
un error en la compilación.
- Argumentos: lista de parámetros que se reciben desde la
rutina llamante. En este caso simple, la función main no recibe ningún
parámetro. También se encontrará la forma (void), que indica lo mismo: la
función no recibe parámetros.
3.4 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.
Un ejemplo de una función sin argumentos:
#include <stdio.h>
main ()
{
printf (“\nEste mensaje lo muestra la función
main()”);
MiFuncion ();
}
/* Definición de la función MiFuncion() */
MiFuncion ()
{
printf (“\nEste otro lo muestra MiFuncion()”);
}
En este ejemplo se utiliza la función
MiFuncion() para mostrar en pantalla una frase. Como se ve, MiFuncion() se
invoca igual que printf() o scanf(), es decir, simplemente se escribe el nombre
de la función y los paréntesis. La definición de MiFuncion() tiene el mismo
aspecto que main(): el nombre de
la función con los paréntesis y, seguidamente, el cuerpo de la función
encerrado entre llaves.
Un ejemplo de una función con argumentos. El
programa visualiza el cuadrado de un número entero por medio de una función que
recibe dicho número como argumento.
#include <stdio.h>
main ()
{
int num;
printf (“\nTeclee un número entero: “);
scanf (“%d”, &num);
cuadrado (num);
}
/* Definición de la función cuadrado() */
cuadrado (int x)
{
printf (“\nEl cuadrado de %d es %d\n”, x, x *
x);
}
Es la declaración de la función cuadrado(). Dentro de los paréntesis
se pone la variable que recibirá el valor pasado a cuadrado() y de qué tipo es. Así, si se teclea el valor 6, se almacena en num y al hacer la llamada cuadrado (num), la variable num se copia en la variable x, que es con la que trabaja
internamente la función cuadrado().
Comentarios
Publicar un comentario