Uso de directivas del preprocesador
En el programa de ejemplo hay una directiva para el preprocesador, que se identifica por el símbolo #:
#include <iostream> // una directiva al preprocesador
C++ utiliza un preprocesador, al igual que su predecesor, el lenguaje C. Un preprocesador es un programa que actúa sobre el código fuente antes que el propio compilador. En la sentencia para el preprocesador #include, su acción es simple, reemplaza la sentencia por el contenido de los archivos citados en la sentencia #include. El nombre del archivo está encerrado entre los símbolos "<" y ">".
En este caso se ha hecho referencia al archivo iostream. Este archivo posee las definiciones utilizadas por cout para visualizar el mensaje. Sin esta directiva la compilación no hubiera procesado la sentencia cout ni hubiera reconocido los símbolos de los operadores de inserción (<<) ni de extracción (>>). Hay otras sentencias para el preprocesador que se verán más adelante.
Los compiladores C++ traen consigo muchos archivos de encabezados (header files) que brindan soporte a distintas ramas de funcionalidades. En C este tipo de archivos lleva la extensión .h (por header file), pero en C++ no lleva ninguna extensión en particular. En el ejemplo se hace referencia al archivo de encabezado <iostream>, un archivo que brinda soporte a las funciones de entrada y salida.
La versión C de <iostream> es <iostream.h>. Pero en este caso se ha incluido la versión C++, por eso se debe incluir la directiva using namespace.
#include <iostream> // una directiva al preprocesador
using namespace std;
namespace es una colección de nombres y de identificadores C++. El uso de namespace impide la aparición de conflictos entre bibliotecas que usan un mismo nombre o identificador. Esto significa que la variable cout que se usa en la función y que está definida en <iostream> se llama en realidad std::cout. De esta manera se puede hacer referencia a cout sin tener que codificar siempre el prefijo std.