Me gustaría ir contando un poco mis primeras experiencias con este lenguaje, el cuál estoy estudiando hace un tiempo y me ha gustado mucho.
Para empezar voy a contar que todo este artículo está basado utilizando el Visual Studio 2008, el cuál ustedes podrán descargar gratuitamente en sus versiones express.
Para crear nuestro primer proyecto, abrimos Visual Studio y ejecutamos:
File –> New –> Project
Nos pedirá el nombre del mismo, donde pondremos uno que nos parezca bien para este primer proyecto que vamos a ver.
Hacemos click en Next, y elegimos la siguiente configuración:
Configurado nuestro proyecto, hacemos click en Finish y nuestro IDE quedará pronto para empezar a picar código.
Veremos que nos crea 3 directorios de trabajo por defecto, los cuales son:
* Header Files
* Resource Files
* Source Files
En nuestro directorio de Header files, irán los Headers de la aplicación, que ya veremos que son, mientras que en el de Source Files, irá nuestro código, por el momento no haremos nada con Resource Files.
Para agregar nuestro primer archivo, en este caso nuestro Main, hacemos click derecho en Source Files –> New –> File y luego seleccionamos en el cuadro de diálogo que aparece, C++ File y elegimos un nombre, en este caso, Main
Vamos a empezar a codificar en C++ (Al fín)
Primero que nada lo que vamos a hacer es lo siguiente: Un programa que tome dos enteros y le intercambie sus valores, por ejemplo:
Si recibo a = 3, y b = 4, deberé devolver a = 4 y b = 3.
Por lo tanto, necesitaremos que se muestren datos en pantalla, y una función básica para intercambiar los valores. Para mostrar datos en pantalla, necesitaremos la biblioteca iostream, que nos permite realizar estas acciones, por lo que la incluiremos en el código.
Luego crearemos la función main, que igualará una variable entera a a un número entero, y una variable entera b a otro número entero para luego mostrar en pantalla los mismos valores intercambiados, llamando a la función que se encarga de esto.
#include <iostream>
using namespace std;
void main()
{
int a = 3, b = 5;
cout << "El valor de a es: " << a << endl;
cout << "El valor de b es: " << b << endl;
intercambiarValores(a,b);
cout << "El valor de a es: " << a << endl;
cout << "El valor de b es: " << b << endl;
cin >> a;
};
Como podemos ver en el código, creamos las variables enteras, les asignamos sus valores, luego mostramos sus valores iniciales en pantalla, luego les intercambiamos los valores (no implementado aun), y luego mostramos sus valores finales en pantalla.
Primero quiero explicar un par de cosas:
* #include <iostream> se encarga de importar la biblioteca iostream que mencionamos en un inicio.
* cout << “Un texto” se encarga de imprimir en pantalla lo que hay dentro de las comillas.
* endl se encarga de hacer un salto de línea.
* cin >> a se encarga de esperar que presionemos una tecla, en este caso le asigna el valor a a y luego sale, esto en realidad es un simple truco para que la consola no se cierre luego de ejecutar todo, de lo contrario todo sucedería muy rápido y no podremos ver que pasa.
Ok, continuemos con la función intercambiarValores(int, int):
void intercambiarValores(int &val1, int &val2)
{
int aux = val1;
val1 = val2;
val2 = aux;
};
Lo que hace esta función es recibir dos valores, notar que en la firma los mismos están precedidos por &, lo que quiere decir que los estamos pasando por referencia (modificaremos la variable original, no una copia de ella).
El resto está bastante claro, donde se cambian los valores de los parámetros entre sí.
Aparentemente estaría todo listo para compilar, pero no, si intentamos compilar esto, nos va a dar un error porque no encuentra la función intercambiarValores, ¿por que se da esto?, bueno se da porque la misma está declarada luego de usarse.
La solución a todo esto, es utilizar un Header e incluirlo en el archivo de texto. ¿Como funciona? Bueno, básicamente tendremos la firma de la función en un archivo .h dentro de la carpeta de Headers, y al incluirla en el código, el pre-compilador escribirá lo que diga este archivo (el header) en el archivo de código, en el mismo lugar que hagamos un include.
Esto es muy útil porque si cambiamos una función que utilizamos en varios lados, con cambiarla en el Header estaría listo, sin tener que andar modificando los archivos uno por uno.
Veamos como quedaría nuestro Header, que crearemos en Header Files y lo llamaremos mainhead.h (el nombre puede ser cualquier cosa).
//Functions
void intercambiarValores(int &, int &

;
void main();
En este archivo como vemos, tenemos la firma de las funciones tal como las definimos en el código, nada mas que eso (Sencillo verdad).
Nuevamente si compilamos tendremos un error, ¿por que?, porque nos faltó incluirlo en nuestro código, por lo que nuestro main quedará de la siguiente manera:
#include <iostream>
using namespace std;
#include "mainhead.h"
void main()
{
int a = 3, b = 5;
cout << "El valor de a es: " << a << endl;
cout << "El valor de b es: " << b << endl;
intercambiarValores(a,b);
cout << "El valor de a es: " << a << endl;
cout << "El valor de b es: " << b << endl;
cin >> a;
};
void intercambiarValores(int &val1, int &val2)
{
int aux = val1;
val1 = val2;
val2 = aux;
};
Como podemos ver, ahora si escribimos: #include "mainhead.h”, por lo que el compilador lo interpretará de la siguiente manera:
#include <iostream>
using namespace std;
void intercambiarValores(int &, int &

;
void main();
void main()
{
int a = 3, b = 5;
cout << "El valor de a es: " << a << endl;
cout << "El valor de b es: " << b << endl;
intercambiarValores(a,b);
cout << "El valor de a es: " << a << endl;
cout << "El valor de b es: " << b << endl;
cin >> a;
};
void intercambiarValores(int &val1, int &val2)
{
int aux = val1;
val1 = val2;
val2 = aux;
};
Notar que el compilador escribe lo que contiene “mainhead.h” en el lugar donde hicimos el include, esto por supuesto no lo veremos, para nosotros será solo un include en ese lugar.
Bueno, ahora sí, a compilar y a ver como funciona nuestro súper primer programa:
No duden en enviar sus comentarios con respecto a este artículo, y si les interesa vamos a seguir con mas, para que puedan aprender como lo estoy haciendo yo (Prometo mejorar mis técnicas de profesor :-) )
Yo mismo en http://www.geekfanatico.com