Documente Academic
Documente Profesional
Documente Cultură
Al usar la directiva #include se le dice al compilador que busque e interprete todos los
elementos definidos en el archivo que acompaa la directiva (en este caso, iostream ). Para
evitar sobrescribir los elementos ya definidos al ponerles igual nombre, se crearon los
espacios de nombres o namespace del singular en ingls. En este caso hay un espacio de
nombres llamado std , que es donde se incluyen las definiciones de todas las funciones y
clases que conforman labiblioteca estndar de C++. Al incluir la sentencia using namespace
std le estamos diciendo al compilador que usaremos el espacio de nombres std por lo que
no tendremos que incluirlo cuando usemos elementos de este espacio de nombres, como
pueden ser los objetos cout y cin , que representan el flujo de salida estndar (tpicamente
la pantalla o una ventana de texto) y el flujo de entrada estndar (tpicamente el teclado).
La definicin de funciones es igual que en C, salvo por la caracterstica de que si main no va
a recoger argumentos, no tenemos por qu ponrselos, a diferencia de C, donde haba que
ponerlos explcitamente, aunque no se fueran a usar. Queda solo comentar que el
smbolo << se conoce como operador de insercin, y grosso modo est enviando a cout lo
que queremos mostrar por pantalla para que lo pinte, en este caso la cadena "Hola mundo" .
El mismo operador << se puede usar varias veces en la misma sentencia, de forma que
gracias a esta caracterstica podremos concatenar el objeto endl al final, cuyo resultado ser
imprimir un retorno de lnea.
Por ltimo tomaremos una secuencia de caracteres del teclado hasta el retorno de lnea
(presionando ENTER), llamando al mtodo get del objeto cin .
Tipos de datos[editar]
C++ tiene los siguientes tipos fundamentales:
Booleanos: bool
Vaco: void
El modificador unsigned se puede aplicar a enteros para obtener nmeros sin signo (por
omisin los enteros contienen signo), con lo que se consigue un rango mayor de nmeros
Tamaos de tipos primitivos bajo i386 (GCC)
Tipo
Nmero de Bits
char
short
16
int
32
float
32
double
naturales.
64
Tamaos asociados[editar]
Segn la mquina y el compilador que se utilice los tipos primitivos pueden ocupar un
determinado tamao en memoria. La siguiente lista ilustra el nmero de bits que ocupan los
distintos tipos primitivos en la arquitectura x86.
Otras arquitecturas pueden requerir distintos tamaos de tipos de datos primitivos. C++ no
dice nada acerca de cul es el nmero de bits en un byte, ni del tamao de estos tipos; ms
bien, ofrece solamente las siguientes "garantas de tipos":
Un tipo long tiene al menos el doble tamao en bytes que un tipo short .
Wchar_t[editar]
Para la versin del estndar que se public en 1998, se decidi aadir el tipo de
dato wchar_t , que permite el uso de caracteres UNICODE, a diferencia del tradicional char ,
que contempla simplemente al cdigo de caracteres ASCII extendido. A su vez, se ha definido
para la mayora de las funciones y clases, tanto de C como de C++, una versin para trabajar
con wchar_t , donde usualmente se prefija el carcter w al nombre de la funcin (en
ocasiones el carcter es un infijo). Por ejemplo:
strcpy - wstrcpy
std::string - std::wstring
std::cout - std::wcout
Cabe destacar que void no es un tipo. Una funcin como la declarada anteriormente no
puede retornar un valor por medio de return: la palabra clave va sola. No es posible una
declaracin del tipo:
void t; //Est mal
Indica que memoria es un puntero a alguna parte, donde se guarda informacin de algn tipo.
El programador es responsable de definir estos "algn", eliminando toda ambigedad. Una
ventaja de la declaracin "void *" es que puede representar a la vez varios tipos de datos,
dependiendo de la operacin de cast escogida. La memoria que hemos apuntado en alguna
parte, en el ejemplo anterior, bien podra almacenar un entero, un flotante, una cadena de
texto o un programa, o combinaciones de stos. Es responsabilidad del programador recordar
qu tipo de datos hay y garantizar el acceso adecuado.
La palabra "NULL"[editar]
Adems de los valores que pueden tomar los tipos anteriormente mencionados, existe un
valor llamado NULL, sea el caso numrico para los enteros, carcter para el tipo char, cadena
de texto para el tipo string, etc. El valor NULL, expresa, por lo regular, la representacin de
una Macro, asignada al valor "0".
Tenemos entonces que:
void* puntero = NULL;
int entero = NULL;
bool boleana = NULL;
char caracter = NULL;
El valor de las variables anteriores nos dara 0. A diferencia de la variable "caracter", que nos
dara el equivalente a NULL, '\0', para caracteres.