Вы находитесь на странице: 1из 18

The C++ Language

Tutorial
Este documento y su contenido es copyright de cplusplus.com cplusplus.com, 2008. Todos los
derechos reservados.
Cualquier reproduccin o redistribucin de parte o todo el contenido en cualquier forma est
prohibida salvo para imprimir una copia personal de todo el documento o descargar a un disco
duro local, sin modificar su contenido en cualquier forma (incluyendo, pero no limitado a, este
aviso de copyright).
Usted no puede, excepto con autorizacin expresa por escrito de cplusplus.com, distribuir el
contenido de este documento. Tampoco se puede transmitir o almacenar en cualquier otro sitio
web u otro tipo de sistema de recuperacin electrnica.

cplusplus.com 2008.
All rights reserved

The C++ Language


Tutorial

Tabla de contenidos
Tabla de
contenidos..........................................................................................................................
........... 3
Introduccin
5
Instrucciones de
uso
. 5
Fundamentos de C ++

...

cplusplus.com 2008.
All rights reserved

The C++ Language


Tutorial

Introduccin

Instrucciones de uso
A quin est dirigido este tutorial?
Este tutorial es para aquellas personas que quieren aprender a programar en C ++ y no necesariamente tienen ningn
conocimiento previo de otros lenguajes de programacin. Por supuesto que cualquier conocimiento de otros lenguajes de
programacin o cualquier habilidad general de la computadora puede ser til para comprender mejor este tutorial,
aunque no es esencial.
Tambin es adecuado para aquellos que necesitan un poco de actualizacin sobre las nuevas caractersticas del lenguaje
ha adquirido de los ltimos estndares.
Si est familiarizado con el lenguaje C, puede tomar las 3 primeras partes de este tutorial como una revisin de
conceptos, ya que explican principalmente la parte C de C ++. Hay ligeras diferencias en la sintaxis de C ++ para
algunas de las caractersticas de C, por lo que te recomiendo su lectura de todos modos.
La cuarta parte describe la programacin orientada a objetos.
La quinta parte se describen principalmente las novedades introducidas por la norma ANSI- C ++.

Estructura de este tutorial


El tutorial se divide en 6 partes y cada parte se divide a su vez en diferentes secciones que cubren un tema cada uno.
Se puede acceder a cualquier seccin directamente desde el ndice de la seccin disponible en la barra lateral izquierda,
o comenzar el tutorial desde cualquier punto y seguir los enlaces al final de cada seccin.
Muchas secciones incluyen ejemplos que describen el uso de los nuevos conocimientos adquiridos en el captulo. Se
recomienda leer estos ejemplos y ser capaz de entender cada una de las lneas de cdigo que lo constituyen, antes de
pasar al siguiente captulo.
Una buena manera de adquirir experiencia con un lenguaje de programacin es modificando y aadiendo nuevas
funcionalidades en su cuenta para los programas de ejemplo que usted entiende completamente. No tengas miedo de
modificar los ejemplos proporcionados con este tutorial, esa es la manera de aprender.

Notas de compatibilidad
Aceptacin estndar ANSI -C ++ como un estndar internacional es relativamente reciente. Fue publicado por primera
vez en noviembre de 1997, y revisado en 2003. Sin embargo, existe el lenguaje C ++ desde mucho tiempo antes
(1980). Por lo tanto hay muchos compiladores que no soportan todas las nuevas capacidades incluidas en ANSI- C ++,
especialmente los liberados antes de la publicacin de la norma.
Este tutorial se piensa que es seguido con los compiladores modernos que apoyan, al menos en algunas especificaciones
grado- ANSI- C ++. Os animo a conseguir uno si el suyo no est adaptado. Hay muchas opciones, tanto comerciales
como gratuitas.

Los compiladores
Los ejemplos incluidos en este tutorial son todos los programas de la consola. Eso significa que utilizan texto para
comunicarse con el usuario y para mostrar sus resultados.
Todos los compiladores C ++ apoyan la compilacin de programas de la consola. Revise el manual del usuario de su
compilador para obtener ms informacin sobre cmo compilarlos.

cplusplus.com 2008.
All rights reserved

The C++ Language


Tutorial

Estructura de un programa
Probablemente la mejor manera de comenzar a aprender un lenguaje de programacin es escribiendo un programa. Por
lo tanto, aqu est nuestro primer programa:
// my first program in C++

Hello World!

#include <iostream>
using namespace std;
int main ()
{
cout << "Hello World!";
return 0;
}
El primer panel muestra el cdigo fuente de nuestro primer programa. El segundo muestra el resultado del programa
una vez compilado y ejecutado. La forma de editar y compilar un programa depende del compilador que est usando.
Dependiendo de si tiene una interfaz de Desarrollo o no, y en su versin. Consulte la seccin de los compiladores y el
manual o ayuda que se incluye con su compilador si tiene dudas sobre la forma de compilar un programa de consola de
C ++.
El programa anterior es el tpico programa que los aprendices programadores escriben por primera vez, y su resultado
es la impresin en pantalla de la frase "Hello World!. Es uno de los programas ms simples que pueden ser escritos en
C ++, pero ya contiene los componentes fundamentales que cada programa de C ++ tiene. Vamos a mirar lnea por
lnea en el cdigo que acabamos de escribir:
// my first program in C++
Esta es una lnea de comentario. Todas las lneas que comienzan con dos signos de barra (//) se consideran
comentarios y no tienen ningn efecto sobre el comportamiento del programa. El programador puede
utilizar para incluir breves explicaciones u observaciones dentro del propio cdigo fuente. En este caso, la
lnea es una breve descripcin de lo que nuestro programa es.
#include <iostream>
Las lneas que comienzan con una almohadilla (#) son directas para el preprocesador. No son lneas de
cdigo regulares con expresiones sino indicaciones de preprocesador del compilador. En este caso, la
directiva #include< iostream > le dice al preprocesador para incluir el archivo estndar iostream. Este
archivo especfico (iostream) incluye las declaraciones de la biblioteca bsica de entrada-salida estndar en
C ++, y se ha incluido porque su funcionalidad va a ser utilizado ms adelante en el programa.
using namespace std;
Todos los elementos de la biblioteca estndar de C ++ se declaran dentro de lo que se llama un espacio de
nombres, el espacio de nombres con el nombre std. As que con el fin de acceder a su funcionalidad,
declaramos con esta expresin que vamos a utilizar estas entidades. Esta lnea es muy frecuente en los
programas en C ++ que utilizan la biblioteca estndar, y de hecho ser incluida en la mayora de los cdigos
fuente incluido en estos tutoriales.
int main ()

Esta lnea corresponde al comienzo de la definicin de la funcin principal. La funcin principal es el punto
por donde todos los programas C ++ comienzan su ejecucin, independientemente de su ubicacin dentro
del cdigo fuente. No importa si hay otras funciones con otros nombres definidos antes o despus de que las instrucciones contenidas en la definicin de esta funcin sern siempre los primeros en ser ejecutado en
cualquier programa en C ++. Por esa misma razn, es esencial que todos los programas en C ++ tienen
una funcin principal.
La palabra principal es seguido en el cdigo por un par de parntesis (()). Esto es as porque se trata de una
declaracin de la funcin: En C ++, lo que diferencia a una declaracin de la funcin de otros tipos de
expresiones son estos parntesis que siguen a su nombre. Opcionalmente, estos parntesis, podr adjuntar
una lista de los parmetros dentro de ellos.
Inmediatamente despus de estos parntesis se encuentra el cuerpo de la funcin principal entre llaves
({}). Lo que est contenida dentro de estas llaves es lo que hace la funcin cuando se ejecuta.

cplusplus.com 2008.
All rights reserved

The C++ Language


Tutorial

cout << "Hello World!";


Esta lnea es una declaracin C ++. Una declaracin es una expresin simple o compuesto que puede
realmente producir algn efecto. De hecho, esta declaracin realiza la nica accin que genera un efecto
visible en nuestro primer programa.
cout representa el flujo de salida estndar en C ++ , y el significado de toda la declaracin es insertar una
secuencia de caracteres (en este caso, la secuencia Hello World de caracteres ) en el flujo de salida estndar
(que por lo general es la pantalla ) .
cout se declara en el archivo estndar iostream en el espacio de nombres std , as que es por eso que
tenamos que incluir ese archivo especfico y para declarar que bamos a utilizar este espacio de nombres
especfico anteriormente en nuestro cdigo.
Observe que la declaracin termina con un punto y coma (;). Este carcter se utiliza para marcar el final de
la instruccin y de hecho debe ser incluido al final de todas las declaraciones de expresin en todos los
programas en C ++ (uno de los errores de sintaxis ms comunes es de hecho que se olvide de incluir algn
punto y coma despus de una declaracin).
return 0;
La sentencia return hace que la funcin principal para terminar de retorno puede ser seguido por un cdigo
de retorno (en nuestro ejemplo es seguido por el cdigo de retorno 0). Un cdigo de retorno de 0 para la
funcin principal se interpreta generalmente como el programa funcion como se esperaba sin ningn error
durante su ejecucin. Esta es la forma ms habitual de terminar un programa de consola de C ++.
Usted puede haber notado que no todas las lneas de este programa realizan acciones cuando se ejecuta el cdigo.
Haba lneas que contienen slo los comentarios (los que comienzan por //). Haba lneas con las directivas de
preprocesador del compilador (los que comienzan por #). Luego estaban las lneas que comenzaron la declaracin de
una funcin (en este caso , la funcin principal) y , por ltimo, las lneas con las declaraciones (como la insercin en
cout ) , todos ellos incluidos en el bloque delimitado por las llaves ({} ) de la funcin principal.
El programa se ha estructurado en diferentes lneas con el fin de ser ms fcil de leer, pero en C ++ , no tenemos
reglas estrictas sobre cmo separar instrucciones en distintas lneas. Por ejemplo, en lugar de:
int main ()
{
cout << " Hello World!";
return 0;
}
Podramos haber escrito:
int main () { cout << "Hello World!"; return 0; }

Todo en una sola lnea y esto habra tenido exactamente el mismo significado que el cdigo anterior.
En C ++, la separacin entre las declaraciones se especifica con un punto y coma final (;) al final de cada uno, por lo
que la separacin en diferentes lneas de cdigo no importa en absoluto para este propsito. Podemos escribir
muchas declaraciones por lnea o escribir una sola declaracin que toma muchas lneas de cdigo. La divisin de
cdigo en diferentes lneas slo sirve para que sea ms legible y esquemtico para los seres humanos que la pueda
leer.
Aadamos una instruccin adicional para nuestro primer programa:

cplusplus.com 2008.
All rights reserved

The C++ Language


Tutorial

En este caso, hemos realizado dos inserciones en cout en dos estados diferentes. Una vez ms, la separacin en
diferentes lneas de cdigo se ha hecho slo para dar mayor legibilidad al programa, puesto principal podra haber
sido perfectamente vlido definido de esta manera:
int main () { cout << " Hello World! "; cout << " I'm a C++ program "; return 0; }

Tambin nos libre de dividir el cdigo en ms lneas si consideramos que es ms conveniente:


int main ()
{
cout <<
"Hello World!";
cout
<< "I'm a C++ program";
return 0;
}

Y de nuevo el resultado habra sido exactamente el mismo que en los ejemplos anteriores.
Directivas del preprocesador (los que comienzan por #) estn fuera de esta regla general ya que no son
declaraciones. Son lneas ledos y procesados por el preprocesador y no producen ningn cdigo por s
mismos. Directivas del preprocesador deben especificar en su propia lnea y no tienen que terminar con un
punto y coma (;).

Comentarios
Los comentarios son partes del cdigo fuente ignorado por el compilador. Ellos simplemente no hacen
nada. Su propsito es slo para permitir que el programador para insertar notas o descripciones
incrustados dentro del cdigo fuente.
C ++ soporta dos formas de insertar comentarios:
// line comment
/* block comment */

El primero de ellos, conocido como lnea de comentario, los descartes de todo, desde donde el par de
signos barra (//) se encuentra hasta el final de la misma lnea. El segundo, conocido como bloque de
comentario, descarta todo lo que entre los / * personajes y la primera aparicin de los caracteres * /, con
la posibilidad de incluir ms de una lnea.
Vamos a agregar comentarios a nuestro segundo programa:

cplusplus.com 2008.
All rights reserved

The C++ Language


Tutorial

Si incluye comentarios dentro del cdigo fuente de sus programas sin necesidad de utilizar los caracteres de
comentario combinaciones //, / * o * /, el compilador tomarlos como si fueran expresiones C ++, lo ms probable es
que uno o varios mensajes de error cuando se compila.

cplusplus.com 2008.
All rights reserved

The C++ Language


Tutorial

Variables. Tipos de datos.


La utilidad de los programas de "Hello World " que se muestran en la seccin anterior es bastante cuestionable.
Tuvimos que escribir varias lneas de cdigo, compilar ellos, y luego ejecutar el programa resultante slo para
obtener una simple frase escrita en la pantalla como resultado. Sin duda hubiera sido mucho ms rpido que escribir
la sentencia de salida por nosotros mismos. Sin embargo, la programacin no se limita slo a la impresin de textos
sencillos en la pantalla. Con el fin de ir un poco ms all y llegar a ser capaz de escribir programas que realizan
tareas tiles que realmente ahorrar Trabajemos necesitamos introducir el concepto de variable.
Pensemos que les pido que conservar el nmero 5 en su memoria mental, y luego pedimos que memorizar tambin
el nmero 2 al mismo tiempo. Usted acaba de guardar dos valores diferentes en su memoria. Ahora, si te pido que
aadir
1 para el primer nmero le dije, usted debe estar reteniendo los nmeros 6 (que es 5 + 1) y 2 en su memoria.
Valores que podramos ahora, por ejemplo, restar y obtener 4 como resultado.
Todo el proceso que usted acaba de hacer con su memoria mental es un smil de lo que una computadora puede
hacer con dos variables. El mismo proceso se puede expresar en C ++ con el siguiente conjunto de instrucciones:

a = 5;
b = 2;
a = a + 1;
result = a - b;
Obviamente, este es un ejemplo muy simple, ya que slo hemos utilizado dos valores enteros pequeos,
pero tenga en cuenta que el equipo puede almacenar millones de nmeros como estos, al mismo tiempo y
realizar operaciones matemticas sofisticadas con ellos.
Por lo tanto, podemos definir una variable como una porcin de memoria para almacenar un valor
determinado.
Cada variable necesita un identificador que lo distingue de los dems, por ejemplo, en el cdigo anterior
los identificadores de variables eran a, b y resultado, pero nos podra haber llamado a las variables
nombres que queramos inventar, siempre y cuando fueran identificadores vlidos.
Identificadores
Un identificador vlido es una secuencia de una o ms letras, dgitos o caracteres de subrayado (_).
Espacios ni signos de puntuacin o smbolos pueden ser parte de un identificador. Slo letras, dgitos y
caracteres de subrayado individuales son vlidas. Adems, identificadores de variables siempre tienen que
comenzar con una letra. Tambin pueden comenzar con un carcter de subrayado ( _) , pero en algunos
casos estos pueden ser reservados para palabras clave especficas del compilador o identificadores
externos , as como identificadores que contienen dos caracteres sucesivos de subrayado en cualquier
lugar . En ningn caso pueden comenzar con un dgito.
Otra regla que hay que tener en cuenta al inventar sus propios identificadores es que no pueden adaptarse
a cualquier palabra clave del lenguaje C ++ ni los especficos de su compilador, que son palabras clave
reservadas. Las palabras clave estndar reservada son:
asm, auto, bool, break, case, catch, char, class, const, const_cast, continue,
default, delete, do, double, dynamic_cast, else, enum, explicit, export, extern,
false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new,
operator, private, protected, public, register, reinterpret_cast, return, short,
signed, sizeof, static, static_cast, struct, switch, template, this, throw, true,
try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile,
wchar_t, while
Adems , las representaciones alternativas para algunos operadores no pueden utilizarse como identificadores ya
que son palabras reservadas en algunas circunstancias :
and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq

cplusplus.com 2008.
All rights reserved

The C++ Language


Tutorial

Su compilador tambin puede incluir algunos especficos reservados clave adicionales.


Muy importante: El lenguaje C ++ es un lenguaje " entre maysculas y minsculas". Eso significa que un
identificador escrito en maysculas no es equivalente a otro con el mismo nombre pero escrito en letras
pequeas. As, por ejemplo, la variable de resultado no es la misma que la variable de resultado o la
variable de resultado. Se trata de tres identificadores de variables diferentes.

Tipos de datos fundamentales


En la programacin, que almacenar las variables en la memoria de nuestro ordenador, pero el equipo tiene
que saber qu tipo de datos que queremos almacenar en ellos, ya que no va a ocupar la misma cantidad
de memoria para almacenar un nmero simple que para almacenar un sola letra o un nmero grande, y
que no van a ser interpretados de la misma manera.
La memoria en nuestras computadoras se organiza en bytes. Un byte es la cantidad mnima de memoria
que podemos manejar en C ++. Un byte puede almacenar una cantidad relativamente pequea de datos:
un solo carcter o un entero pequeo (generalmente un nmero entero entre 0 y 255). Adems, el
ordenador puede manipular tipos de datos ms complejos que provienen de la agrupacin de varios bytes,
tales como nmeros largos o nmeros no enteros.
A continuacin tienes un resumen de los tipos de datos fundamentales bsicos en C ++, as como el rango
de valores que se pueden representar con cada uno de ellos:
Name

Description

Size*

char

Character or small integer.

1byte

short int
(short)

Short Integer.

2bytes

int

Integer.

4bytes

long int (long)

Long integer.

4bytes

float
double
long double

Boolean value. It can take one of two values: true


or false.
Floating point number.
Double precision floating point number.
Long double precision floating point number.

wchar_t

Wide character.

bool

Range*
signed: -128 to 127
unsigned: 0 to 255
signed: -32768 to 32767
unsigned: 0 to 65535
signed: -2147483648 to
2147483647
unsigned: 0 to 4294967295
signed: -2147483648 to
2147483647
unsigned: 0 to 4294967295

1byte

true or false

4bytes
8bytes
8bytes
2 or 4
bytes

+/- 3.4e +/- 38 (~7 digits)


+/- 1.7e +/- 308 (~15 digits)
+/- 1.7e +/- 308 (~15 digits)
1 wide character

* Los valores de las columnas Tamao y rango dependen del sistema se compila el programa para los valores
indicados arriba son los que se encuentran en la mayora de los sistemas de 32 bits. Pero para otros sistemas, la
especificacin general es que int tiene el tamao natural, sugerido por la arquitectura del sistema (una " palabra" )
y los cuatro tipos de enteros char, short, int y long cada uno de ellos debe ser al menos tan grande como el que
le precede , con char siendo siempre 1 byte en tamao. Lo mismo se aplica a los tipos de punto flotante float,
double y long double, donde cada uno debe proporcionar al menos tanta precisin como la anterior.

Declaracin de variables
Para utilizar una variable en C ++, primero debemos declarar que especificar qu tipo de datos que queremos que
sea. La sintaxis para declarar una nueva variable es escribir el especificador del tipo de datos que desee (como int,
bool, float...) seguido de un identificador de variable vlido.
9 Por ejemplo:
cplusplus.com 2008.
All rights reserved

The C++ Language


Tutorial

int a;
float mynumber;

Estos son dos declaraciones vlidas de variables. El primero declara una variable de tipo int con el
identificador a. El segundo declara una variable de tipo float con el identificador mynumber. Una vez
declaradas, las variables a y mynumber se puede utilizar en el resto de su mbito de aplicacin en el
programa.
Si usted va a declarar ms de una variable del mismo tipo, se puede declarar todos ellos en una sola
sentencia mediante la separacin de sus identificadores con comas. Por ejemplo:
int a, b, c;
Esta declara tres variables (a, b y c), todos ellos de tipo int, y tiene exactamente el mismo significado
que:

Los tipos de datos enteros char, short, long e int pueden ser ya sea con o sin signo en funcin del
rango de nmeros necesarios para ser representado. Firmado tipos pueden representar valores tanto
positivos como negativos, mientras que los tipos sin signo slo pueden representar valores positivos (y
cero). Esto se puede especificar mediante el uso de cualquiera de los dos el especificador signed o el
especificador unsigned antes de que el nombre del tipo. Por ejemplo:
unsigned short int NumberOfSisters;
signed int MyAccountBalance;
Por defecto, si no se especifica o bien signed o unsigned la mayora de los ajustes del compilador
asumirn el tipo que se firmar, por lo tanto, en lugar de la segunda declaracin anterior que podramos
haber escrito:
int MyAccountBalance;
con exactamente el mismo significado (con o sin la palabra clave signed)
Una excepcin a esta regla general es el tipo char, que existe por s mismo y se considera un tipo de
datos fundamental diferente de signed char y unsigned char, pensado para personajes de la tienda.
Debe utilizar signed o unsigned si tiene intencin de almacenar valores numricos en una variable -char
tamao.
short y long se puede utilizar solo como especificadores de tipo . En este caso, se refieren a sus tipos
fundamentales respectiva enteros: short es equivalente a short int y long es equivalente a long int.
Los siguientes dos declaraciones de variables son equivalentes:
short Year;
short int Year;
Finalmente, signed y unsigned tambin se puede utilizar como especificadores de tipo independiente,
significando lo mismo que signed int y unsigned int respectivamente. Las dos declaraciones
siguientes son equivalentes:
unsigned NextYear;
unsigned int NextYear;
Para ver lo que las declaraciones de variables se ven como en la accin dentro de un programa, vamos
1
a ver el cdigo C ++ del ejemplo sobre su memoria mental
propuesto al inicio de esta seccin:
cplusplus.com 2008.
0
All rights reserved

The C++ Language


Tutorial

// operating with variables

#include <iostream>
using namespace std;
int main ()
{
// declaring variables:
int a, b;
int result;
// process:
a = 5;
b = 2;
a = a + 1;
result = a - b;
// print out the result:
cout << result;

// terminate the program:


return 0;

No te preocupes si algo ms que las declaraciones de variables s parece un poco extrao. Ver el resto en detalle en
los prximos apartados.

mbito de las variables


Todas las variables que tenemos la intencin de utilizar en un programa deben haber sido declaradas con su
especificador de tipo en un punto anterior en el cdigo, como lo hicimos en el cdigo anterior en el comienzo del
cuerpo de la principal funcin cuando declaramos que a, b, and result eran de tipo int.
Una variable puede ser de mbito global o local. Una variable global es una variable declarada en el cuerpo principal
del cdigo fuente, fuera de todas las funciones , mientras que una variable local es declarada dentro del cuerpo de
una funcin o un bloque.

cplusplus.com
Las variables globales pueden ser referidas desde cualquier
de
las funciones,2008.
siempre
1 parte del cdigo, incluso dentro
All rights reserved

The C++ Language


Tutorial
que sea despus de su declaracin.

El alcance de las variables locales se limita al bloque entre llaves ({ }) siempre que se declaren. Por
ejemplo, si se declaran en el comienzo del cuerpo de una funcin (como en funcin de main) su mbito de
aplicacin es entre su punto de declaracin y el final de la funcin. En el ejemplo anterior, esto significa
que si exista otra funcin adems de main, las variables locales declaradas en main. No se tiene acceso
desde el resto de funciones y viceversa.

Inicializacin de variables
Cuando se declara una variable local regular, su valor por defecto es indeterminado. Pero es posible que
desee una variable para almacenar un valor concreto en el mismo momento que se declara. Con el fin de
hacer eso, puede inicializar la variable. Hay dos maneras de hacer esto en C ++:
El primero, conocido como c -como, se lleva a cabo aadiendo un signo igual seguido por el valor al que se inicializa
la variable:
type identifier = initial_value ;
Por ejemplo, si queremos declarar una variable int llamado inicializado con un valor de 0 en el momento en el que se
declara, podramos escribir:
int a = 0;
La otra forma de inicializar las variables, conocidas como inicializacin constructor, se hace encerrando el valor inicial
entre parntesis (()):
type identifier (initial_value) ;
Por ejemplo:
int a (0);

Ambas formas de las variables de inicializacin son vlidos y equivalente en C ++.

Introduccin a las cuerdas.


Las variables que pueden almacenar valores no numricos que son ms de un solo carcter que se conoce
como cadenas. La biblioteca de lenguaje C ++ proporciona soporte para las cadenas a travs de la norma
string la clase. Esto no es un tipo fundamental, pero se comporta de una manera similar como tipos
fundamentales hacen en su uso ms bsico.
1
cplusplus.com 2008.
2
All rights reserved

The C++ Language


Tutorial

Una primera diferencia con los tipos de datos fundamentales es que con el fin de declarar y utilizar objetos
(variables) de este tipo es necesario incluir un archivo de cabecera adicional en nuestro cdigo fuente:
<string> y tener acceso a la std espacio de nombres (que ya hemos tenido en todos nuestros
programas anteriores gracias a la using namespace declaracin).

Como usted puede ver en el ejemplo anterior, las cadenas se pueden inicializar con cualquier cadena vlida literal
como variables de tipo numrico se pueden inicializar a cualquier literal numrico vlido. Ambos formatos de
inicializacin son vlidas con las cadenas:
string mystring = "This is a string";
string mystring ("This is a string");
Strings tambin pueden realizar todas las otras operaciones bsicas que los tipos de datos fundamentales pueden,
como ser declarado sin valor inicial y que se le asigne valores durante la ejecucin:

Para ms detalles sobre cadenas C ++, puede echar un vistazo a la referencia de clase string.

1
3

cplusplus.com 2008.
All rights reserved

The C++ Language


Tutorial

Constantes
Las constantes son expresiones con un valor fijo.

Los literales
Los literales se utilizan para expresar valores particulares dentro del cdigo fuente de un programa. Ya hemos
utilizado estos previamente para dar valores a las variables concretas o para expresar mensajes Queramos que
nuestros programas de imprimir, por ejemplo, cuando escribimos:
a = 5;
el 5 de este trozo de cdigo era una constante literal.
Constantes literales se pueden dividir en nmeros enteros, nmeros, caracteres, cadenas y Boole en coma
flotante Valores.

Los nmeros enteros


1776
707
-273
Ellos son constantes numricas que identifican valores decimales enteros. Tenga en cuenta que para
expresar una constante numrica que no tenemos que escribir comillas (") ni ningn carcter especial No
hay duda de que es una constante. Cada vez que escribimos 1776 en un programa, nos estaremos
refiriendo al valor 1776.
Adems de los nmeros decimales (los que todos nosotros estamos acostumbrados a usar todos los das) C ++
permite el uso constantes literales de nmeros octales (base 8) y nmeros hexadecimales (base 16). Si queremos
expresar un nmero octal tenemos que precederla con un 0 (carcter cero). Y con el fin de expresar un nmero
hexadecimal tenemos que precederlo con los personajes 0x (cero, x). Por ejemplo, las siguientes constantes literales
son equivalentes entre s:
75
0113
0x4b

// decimal
// octal
// hexadecimal

Todos estos representan el mismo nmero: 75 (setenta y cinco) expresada como un nmero en base 10, el nmero
octal y el nmero hexadecimal, respectivamente.
Constantes literales, al igual que las variables, se considera que tienen un tipo de datos especfico. Por defecto,
literales enteros son de tipo int. Sin embargo, podemos obligarlos a cualquiera de los dos no est firmado
aadiendo el u carcter a la misma, o largo aadiendo l:
75
75u
75l
75ul

//
//
//
//

int
unsigned int
long
unsigned long

En ambos casos, el sufijo se puede especificar mediante cartas ya sea superior o minsculas.

Nmeros de punto flotante

1
4

cplusplus.com 2008.
All rights reserved

The C++ Language


Tutorial
Expresan nmeros con decimales y/o exponentes. Pueden incluir un punto decimal, un carcter e (que
expresa " por diez a la altura X ", donde X es un valor entero que sigue el carcter e), o ambos un punto
decimal y un carcter e:

3.14159
6.02e23
1.6e-19
3.0

//
//
//
//

3.14159
6.02 x 10^23
1.6 x 10^-19
3.0

Estos son cuatro nmeros vlidos con decimales expresan en C ++. El primer nmero es el PI, el segundo
es el nmero de Avogadro, la tercera es la carga elctrica de un electrn (un nmero extremadamente
pequeo) -todas ellas aproximadamente- y el ltimo es el nmero tres expresada como un punto flotante
literal numrico.
El tipo por defecto para los literales de punto flotante es double. Si desea explcitamente para expresar un
float o long double numrico literal, puede utilizar la f o l sufijos respectivamente:
3.14159L
6.02e23f

// long double
// float

Cualquiera de las letras que pueden ser parte de una constante numrica de punto flotante (e, f, l) se
puede escribir usando letras maysculas o menores sin ninguna diferencia en sus significados.
Carcter y literales de cadena
Tambin existen constantes no numricos, como:
'z'
'p'
"Hello world"
"How do you do?"
Las dos primeras expresiones representan las constantes de caracteres individuales, y los dos siguientes
representan cadenas literales compuestas de varios personajes. Note que para representar un solo
carcter encerramos entre comillas simples (') y expresar una cadena (que por lo general consiste en ms
de un carcter) encerramos entre comillas dobles (").
Al escribir tanto de carcter individual y literal de cadena, es necesario poner las comillas que les rodean
para distinguirlos de los posibles identificadores de variables o palabras clave reservadas. Ntese la
diferencia entre estas dos expresiones:
x
'x'
x solo se referira a una variable cuyo identificador es x, mientras 'x' (cerrado entre comillas simples) se
referira a la constante de caracteres 'x'.
Carcter y literales de cadena tienen ciertas particularidades, como los cdigos de escape. Estos son
caracteres especiales que son difciles o imposibles de expresar de otra manera en el cdigo fuente de un
programa, como salto de lnea (\n) o tab (\t). Todos ellos estn precedidos por una barra invertida (\).
Aqu tienes una lista de algunos de estos cdigos de escape:

1
5

cplusplus.com 2008.
All rights reserved

The C++ Language


Tutorial

\n newline
\r carriage return
\t tab
\v vertical tab
\b backspace
\f form feed (page feed)
\a alert (beep)
\' single quote (')
\" double quote (")
\? question mark (?)
\\ backslash (\)

Por ejemplo:
'\n'
'\t'
"Left \t Right"
"one\ntwo\nthree"

Adems, puede expresar cualquier carcter por su cdigo ASCII numrica escribiendo una barra invertida
(\) seguido por el cdigo ASCII y expresada como un nmero octal (base - 8) o hexadecimal (base 16) .
En el primer caso (octal) los dgitos deben seguir inmediatamente a la barra invertida (por ejemplo \23 o
\40), en el segundo caso (hexadecimal), una x carcter debe ser escrito antes de que los mismos dgitos
(por ejemplo \x20 or \x4A).
Los literales de cadena se pueden extender a ms de una sola lnea de cdigo, poniendo un signo de barra
invertida (\) al final de cada lnea sin terminar.
"string expressed in \
two lines"

Por ltimo, si queremos que la cadena literal que hacerse explcita de caracteres anchos (wchar_t), en
lugar de caracteres estrechos (char), podemos preceder a la constante con el prefijo L:
L"This is a wide character string"

Caracteres anchos se utilizan principalmente para representar conjuntos de caracteres no ingleses o


exticos.

Literales Booleanos
Slo hay dos valores booleanos vlidos: true y false. Estos pueden ser expresados en C ++ como valores
de tipo bool mediante el uso de los literales booleanos true y false.

Constantes definidas (#define)

1
6

cplusplus.com 2008.
All rights reserved

The C++ Language


Tutorial
Puede definir sus propios nombres para las constantes que se utilizan muy a menudo sin tener que
recurrir a la memoria- que consumen las variables, simplemente usando el #define directiva del
preprocesador. Su formato es:

#define identifier value


Por ejemplo:
#define PI 3.14159
#define NEWLINE '\n'

Esto define dos nuevas constantes: PI y NEWLINE. Una vez que se definen, se puede utilizar en el resto
del cdigo como si fueran cualquier otra constante regular, por ejemplo:

De hecho la nica cosa que el preprocesador compilador cuando encuentra #define directivas es para
sustituir literalmente cualquier ocurrencia de su identificador (en el ejemplo anterior, stas eran PI y
NEWLINE) por el cdigo a los que se han definido (3.14159 and '\n' respectivamente).
La directiva #define no es una declaracin C ++ pero una directiva para el preprocesador; por lo tanto
asume toda la lnea que la directiva y no requiere de un punto y coma (;) en su extremo. Si aade un
punto y coma (;) al final, tambin se aadir en todas las ocurrencias dentro del cuerpo del programa que
el preprocesador sustituye.

Constantes declarados (const)


Con el prefijo const puede declarar constantes con un tipo especfico de la misma manera como lo hara
con una variable:

const int pathwidth = 100;


const char tabulator = '\t';

Aqu, pathwidth y tabulator son dos constantes mecanografiadas. Se les trata igual que las variables
regulares, excepto que sus valores no pueden ser modificados despus de su definicin.

1
7

cplusplus.com 2008.
All rights reserved

The C++ Language


Tutorial

1
8

cplusplus.com 2008.
All rights reserved

Вам также может понравиться