Sunteți pe pagina 1din 4

Ejemplos[editar]

A continuacin se cita un programa de ejemplo Hola mundo escrito en C++:


/* Esta cabecera permite usar los objetos que encapsulan los descriptores
stdout
y stdin: cout(<<) y cin(>>)*/
#include <iostream>
using namespace std;
int main()
{
cout << "Hola mundo" << endl;
cin.get();
return 0;
}

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:

Caracteres: char (tambin es un entero), wchar_t

Enteros: short , int , long , long long

Nmeros en coma flotante: float , double , long double

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":

De acuerdo al estndar C99, un tipo char debe ocupar exactamente


un byte compuesto de un mnimo de 8 bits independientemente de la arquitectura de la
mquina.

El tamao reconocido de char es de 1. Es decir, sizeof(char) siempre devuelve 1.

Un tipo short tiene al menos el mismo tamao que un tipo char .

Un tipo long tiene al menos el doble tamao en bytes que un tipo short .

Un tipo int tiene un tamao entre el de short y el de long , ambos inclusive,


preferentemente el tamao de un apuntador de memoria de la mquina. Su valor mximo
es 2147488281, usando 32 bits.

Un tipo unsigned tiene el mismo tamao que su versin signed .

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 resaltar que en C se define wchar_t como:


typedef unsigned short wchar_t;

Mientras que en C++ es en s mismo un tipo de dato.

La palabra reservada "void"[editar]


La palabra reservada void define en C++ el concepto de no existencia o no atribucin de un
tipo en una variable o declaracin. Es decir, una funcin declarada como void no devolver
ningn valor. Esta palabra reservada tambin puede usarse para indicar que una funcin no
recibe parmetros, como en la siguiente declaracin:
int funcion (void);

Aunque la tendencia actual es la de no colocar la palabra "void".


Adems se utiliza para determinar que una funcin no retorna un valor, como en:

void funcion (int parametro);

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

En este sentido, void se comporta de forma ligeramente diferente a como lo hace en C,


especialmente en cuanto a su significado en declaraciones y prototipos de funciones.
Sin embargo, la forma especial void * indica que el tipo de datos es un puntero. Por ejemplo:
void *memoria;

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.

S-ar putea să vă placă și