Disponible la nueva versión "donationware" 7.3 de OrganiZATOR
Descubre un nuevo concepto en el manejo de la información.
La mejor ayuda para sobrevivir en la moderna jungla de datos la tienes aquí.

Curso C++

[Home]  [Inicio]  [Índice]


4.1.11c2  Acceso a miembros de la Librería Estándar


§1  Las funciones de la Librería Estándar de C++ ( 5) se han desarrollado utilizando un subespacio específico denominado std, así que para utilizar estas funciones, además de declarar las directivas correspondientes para incluir sus ficheros de cabecera, hay que especificar también los espacios de nombres adecuados [1]. Esto se puede hacer de dos formas: mediante declaraciones explícitas o utilizando la directiva using.


§1.1  Ejemplo de declaración explícita:

#include <iostream>
 
void main () {        // ================
   std::cout << "Hola mundo" << std::endl;
}


§1.2
  Ejemplo de directiva using:

#include <iostream>
using namespace std;
 
void main () {        // ================
   cout << "Hola mundo" << endl;
}


 Como la inclusión del mecanismo de espacios de nombres es una de las adopciones más tardías de C++, los primitivos compiladores no utilizaban este recurso, es decir, las Librerías Estándar estaban construidas al estilo del viejo C; son los clásicos ficheros de cabecera .h  (las que se adaptan al nuevo estándar no utilizan esta terminación). No obstante, por razón de compatibilidad con el código existente, los compiladores actuales incluyen la posibilidad de utilizar "includes" de formato antiguo (ficheros de cabecera .h). En estos casos, una declaración como:

#include <iostream.h>

Equivale a:

#include <iostream>
using namespace std;


Es decir: en un compilador que se adhiera al estándar actual, un código como el que sigue produce un error de enlazado (cout y endl son desconocidos a pesar de estar definidos en la librería <iostream>).

#include <iostream>
 
void main () {
   cout << "Hola mundo" << endl;    // Error:
}

mientras que este otro se compila sin problema.

#include <iostream.h>
 
void main () {
   cout << "Hola mundo" << endl;    // Ok.
}


No obstante, tenga muy presente que el fichero <iostream.h>, aunque sea soportado por algunos compiladores, no es estándar, por lo que puede ocurrir que esta última forma no sea soportada en alguna plataforma concreta, y sea necesario acudir a alguna de las dos formas canónicas §1.1 o §1.2 anteriores . Lo mismo ocurre con algunas otras librerías .h, por ejemplo <typeinfo.h>, de forma que siempre que sea posible, lo mejor es utilizar las Librerías Estándar, con lo que a este respecto no tendremos problemas de portabilidad con nuestras aplicaciones.

  Inicio.


[1]  Esto se refiere a las librerías específicas de C++; no a las que se mantienen por compatibilidad con el antiguo C, que se encuentra definidas en ficheros de cabecera .h. Por ejemplo, la utilización de la función printf definida en <stdio.h> no requiere el uso de ningún espacio específico de nombres.