El lenguaje de programación C++, como casi todos los lenguajes de programación, tiene sus detractores y sus partidarios, así como también sus ventajas y desventajas; con todo, es un lenguaje de programación ampliamente difundido y utilizado y en ese sentido, resulta importante conocerlo y familiarizarse con él, independientemente de las posturas ideológicas y preferencias personales.
Esta entrada del blog no es un tratado del lenguaje; es más, ni siquiera se acerca a un resumen, es más bien un compendio de referencia a la mano para el lector familiarizado con algún otro lenguaje de programación.
Esta entrada del blog no es un tratado del lenguaje; es más, ni siquiera se acerca a un resumen, es más bien un compendio de referencia a la mano para el lector familiarizado con algún otro lenguaje de programación.
Orígenes y características.
C++ es un lenguaje de programación originalmente desarrollado por Bjarne Stroustrup en 1979 en Bell Laboratories. La intención inicial de su creación fue la de extender y mejorar algunas de las características del lenguaje de programación C y dotarlo de los mecanismos que le permitieran la manipulación del paradigma orientado a objetos, por lo que en general es posible decir que C++ es un lenguaje híbrido.
En palabras de su creador, C++ es un lenguaje de programación de uso general con un sesgo hacia la programación de sistemas que [Stroustrup]:
En palabras de su creador, C++ es un lenguaje de programación de uso general con un sesgo hacia la programación de sistemas que [Stroustrup]:
- es un C mejorado
- soporta abstracción de datos
- soporta programación orientada a objetos y
- soporta programación genérica
La estructura general de programa en C++ varía en función del(los) paradigma(s) de programación elegido(s). Por lo que en ocasiones podrá parecerse mucho a un programa en C, en otras, habrá múltiples archivos con definición de clases, estructuras, espacios de nombres y definición de tipos, plantillas, contenedores, etcétera. Algunos de estos elementos se irán introduciendo en los ejemplos del blog conforme se vaya considerando necesario.
Respecto a la estructura general de una clase, puede decirse que el Ejemplo Clase ilustra dicho aspecto.
Las clases se definen por medio de la cláusula class y un identificador. En general, C++ define tres niveles de acceso:
Respecto a la estructura general de una clase, puede decirse que el Ejemplo Clase ilustra dicho aspecto.
Las clases se definen por medio de la cláusula class y un identificador. En general, C++ define tres niveles de acceso:
- public (público) puede usar su nombre cualquier método.
- protected (protegido) sólo pueden usar su nombre los métodos miembro y amigos de clase.
- private (privado) sólo puede usar su nombre los métodos miembro y amigos de la clase en la que se declara.
Del ejemplo citado, las líneas 14 y 20 muestran la declaración de atributos, los cuales están compuestos por un identificador y el tipo de dato del que se derivará. La definición de todos los atributos necesarios para la clase, siguen la misma estructura.
Las líneas 21 y 22 muestran la declaración del(los) constructor(es) y destructor respectivamente. En la instanciación o generación de nuevos objetos, los objetos se construyen, por lo que no es posible crear un nuevo objeto sin un constructor. Un constructor es el código que se procesa cuando se crea un objeto. La construcción y destrucción de un objeto es un mecanismo mucho más elaborado del que aquí se describe, pero la explicación a detalle queda fuera de los alcances de esta entrada.
Las líneas 15 y 23-25 muestran la declaración de funciones privadas y métodos públicos respectivamente. El número y funcionalidad dependerá del diseño de clase correspondiente.
Las líneas 21 y 22 muestran la declaración del(los) constructor(es) y destructor respectivamente. En la instanciación o generación de nuevos objetos, los objetos se construyen, por lo que no es posible crear un nuevo objeto sin un constructor. Un constructor es el código que se procesa cuando se crea un objeto. La construcción y destrucción de un objeto es un mecanismo mucho más elaborado del que aquí se describe, pero la explicación a detalle queda fuera de los alcances de esta entrada.
Las líneas 15 y 23-25 muestran la declaración de funciones privadas y métodos públicos respectivamente. El número y funcionalidad dependerá del diseño de clase correspondiente.
Finalmente la línea 26 muestra también la lista de objetos que podría incluirse, aunque es de notar también que la lista podría estar vacía, lo cual es lo más usual.
Bienvenid@ a C++.
El Ejemplo Bienvenido1 muestra el primer programa en C++ que se describirá. La línea 4 muestra la inclusión de la biblioteca estándar de entrada y salida para C++: "iostream". La línea 6 muestra el punto de entrada de cualquier programa en C++: el método main y, al igual que en C, es posible procesar argumentos desde la invocación del programa, es decir, se le pueden enviar argumentos al programa a partir de su ejecución inicial. La explicación y los detalles de lo anterior se revisará en el Ejemplo MainArgs de la sección Ejemplos selectos de transición (C++).
La forma más común de imprimir mensajes en la salida estándar (habitualmente la pantalla), es la que aparece en la línea 7 del ejemplo en cuestión; esta es la forma de decirle a C++ que envíe la cadena (cualquier expresión entre comillas dobles es una cadena) a la salida estándar. El operador "<<" tiene un uso más amplio en C++, sigue siendo el operador de corrimiento a la izquierda a nivel de bits, pero cuando se utiliza como en este ejemplo, es el operador de salida; mientras que la palabra reservada cout representa un identificador asociado a la salida estándar. La salida del Ejemplo Bienvenido1 se muestra a continuación:
La forma más común de imprimir mensajes en la salida estándar (habitualmente la pantalla), es la que aparece en la línea 7 del ejemplo en cuestión; esta es la forma de decirle a C++ que envíe la cadena (cualquier expresión entre comillas dobles es una cadena) a la salida estándar. El operador "<<" tiene un uso más amplio en C++, sigue siendo el operador de corrimiento a la izquierda a nivel de bits, pero cuando se utiliza como en este ejemplo, es el operador de salida; mientras que la palabra reservada cout representa un identificador asociado a la salida estándar. La salida del Ejemplo Bienvenido1 se muestra a continuación:
Bienvenid@ a C++!
Una versión ligeramente modificada del Ejemplo Bienvenido1 se muestra en el Ejemplo Bienvenido2. La biblioteca estándar está definida en un espacio de nombres llamado std, por lo que "std::cout" le indica a C++ explícitamente que utilice standard cout y no otra cout si estuviera definida. Para simplificar la notación, es posible utilizar la línea 6 del Ejemplo Bienvenido2 para hacer accesibles todos los nombres std sin tener que utilizar el prefijo "std::", por lo que observe ahora que en la línea 9 se ha modificado debido a la inclusión de la línea 6. La salida del Ejemplo Bienvenido2 es idéntica a la del Ejemplo Bienvenido1.
Un tercera variación del Ejemplo Bienvenido1 se muestra en el Ejemplo Bienvenido3, el cual muestra el uso de dos cout para generar exactamente la misma salida que los dos ejemplos anteriores.
Finalmente, el Ejemplo Bienvenido4 muestra el uso de la secuencia de escape "\n" para introducir un salto de línea en cualquier parte de la cadena que se desea imprimir. La salida del Ejemplo Bienvenido4 se muestra a continuación:
Un tercera variación del Ejemplo Bienvenido1 se muestra en el Ejemplo Bienvenido3, el cual muestra el uso de dos cout para generar exactamente la misma salida que los dos ejemplos anteriores.
Finalmente, el Ejemplo Bienvenido4 muestra el uso de la secuencia de escape "\n" para introducir un salto de línea en cualquier parte de la cadena que se desea imprimir. La salida del Ejemplo Bienvenido4 se muestra a continuación:
Bienvenid@Compilación.
a
C++!
Existen diferentes entornos de programación o IDEs (Integrated Development Environment) que pueden ser utilizados para desarrollar programas en C++, tales como Code::Blocks, JavaBeans, Eclipse, etc., se recomienda al lector buscar y familiarizarse con alguno de ellos o con algún otro IDE que sea de su preferencia.
Esta sección describe muy brevemente los pasos para la compilación desde la línea de comandos, ya que los programas de ejemplo de todo el blog pueden ser visualizados y editados en cualquier editor de texto, y compilados en línea de comandos con el compilador GNU de C++: g++ sin necesidad de un IDE.
Para compilar el programa del Ejemplo Bienvenido1 (descrito en la sección anterior), debe escribir:
Esta sección describe muy brevemente los pasos para la compilación desde la línea de comandos, ya que los programas de ejemplo de todo el blog pueden ser visualizados y editados en cualquier editor de texto, y compilados en línea de comandos con el compilador GNU de C++: g++ sin necesidad de un IDE.
Para compilar el programa del Ejemplo Bienvenido1 (descrito en la sección anterior), debe escribir:
$ g++ -Wall bienvenido1.cpp
Cuando un programa se compila siguiendo la idea planteada, se buscarán todas los archivos requeridos dentro del directorio de trabajo actual, mismo que corresponde al directorio en donde se haya ejecutado el compilador de C++. Si algún archivo tuviera algún problema, se reportará dicha situación antes de volver a visualizar el símbolo del sistema ($); en otro caso, se visualiza de manera casi inmediata el símbolo del sistema y observará que se ha creado particularmente un archivo: "a.out". En modo de desarrollo (development), se recomienda compilar de esta manera. La opción "-Wall" (warning all) habilita al compilador de C++ para que realice todas las comprobaciones posibles y nos advierta de alguna situación anómala por simple que parezca.
Para ejecutar su programa escriba:
Para ejecutar su programa escriba:
$ ./a.out
La salida del comando anterior, debería ser el mensaje que se muestra a continuación:
Bienvenid@ a C++!
Cuando considere que su programa está libre de errores y quiera compilarlo para que posea su propio nombre, pude escribir:
$ g++ -Wall bienvenido1.cpp -o welcome
Lo anterior generará un archivo ejecutable de nombre "welcome", sobra decir que si desea otro nombre, basta con cambiarlo por el que sea de su preferencia.
No hay comentarios.:
Publicar un comentario