Está en la página 1de 6

Page 1

8
|
CAPTULO 1 Un curso intensivo en C ++
Cualquier cdigo que se encuentra dentro de un bloque de espacio de nombres
"MyCode" puede llamar a otro cdigo dentro de la misma espacio de nombres sin
anteponiendo explcitamente el espacio de nombres. Este espacio de nombres implcita
es til en haciendo que el cdigo sea ms precisa y legible. Tambin puede evitar
prepending de espacios de nombres con el uso
Directiva. Esta directiva le dice al compilador que el cdigo posterior est haciendo uso
de nombres en el espacio de nombres especificado. El espacio de nombres es por lo
tanto implicaba para el cdigo que sigue:
#include "namespaces.h"
utilizando MyCode espacio de nombres;
int main ()
{
foo (); // Implica MyCode :: foo ();
return 0;
}
Fragmento de cdigo a partir de espacios de nombres \ usingnamespaces.cpp
Un solo archivo fuente puede contener mltiples uso directivas, pero ten cuidado con el
uso excesivo de este acceso directo. En el caso extremo, si usted declara que est
utilizando cada espacio de nombres conocidos por la humanidad, que ests eliminando
eficazmente los espacios de nombres por completo! Conflictos de nombres volvern a
resultar si est utilizando dos espacios de nombres que contienen los mismos nombres.
Tambin es importante saber en qu espacio de nombres su cdigo est operando para
que no terminen llamando accidentalmente la versin incorrecta de una funcin. Usted
ha visto la sintaxis del espacio de nombres antes - que utiliz en el programa Hola
Mundo, donde cout y endl son en realidad nombres definidos en el std espacio de
nombres. Podras haber escrito Hola, Mundo con el uso directiva, como se muestra
aqu:
#include <iostream>
using namespace std;
int main ()
{
cout << "Hola, mundo!" << endl;
return 0;
}
La uso Directiva tambin puede ser usado para referirse a un elemento particular dentro
de un espacio de nombres. Por ejemplo, si la nica parte de la std espacio de nombres
que se va a utilizar es cout, Puede hacer referencia a la misma de la siguiente manera:
usando std :: cout;

Cdigo subsiguiente puede referirse a cout sin anteponiendo el espacio de nombres,


pero otros elementos de la std espacio de nombres todava tendr que ser explcito:
usando std :: cout;
cout << "Hola, mundo!" << std :: endl;
Pgina 2
Variables
En C ++, las variables se pueden declarar en cualquier lugar en el cdigo y se pueden
utilizar en cualquier parte el bloque actual por debajo de la lnea en la que se declaran.
Las variables pueden ser declaradas sin ser dado un valor. Estas variables no
inicializadas generalmente terminan con un valor aleatorio semi basado en lo que est
en la memoria en el momento y son la fuente de incontables errores. Las variables en C
++ puede alternativamente, se asignar un valor inicial cuando se declaran. El cdigo
que sigue muestra tanto sabores de la declaracin de variables, tanto el uso de
Ints, que representan valores enteros.
int uninitializedInt;
int initializedInt = 7;
cout << uninitializedInt << "es un valor aleatorio" << endl;
cout << initializedInt << "se le asign un valor inicial" << endl;
Fragmento de cdigo de hello variables \ hellovariables.cpp
Cuando se ejecuta, este cdigo es la salida de un valor aleatorio de la memoria para la
primera lnea y el nmero 7 para la segunda. Este cdigo tambin muestra cmo las
variables se pueden utilizar con los flujos de salida.
Disponible para
descargar en
Wrox.com
La mayora de los compiladores se emitir una advertencia cuando el cdigo est
utilizando variables sin inicializar, y algunos entornos C ++ pueden informar de un
error de tiempo de ejecucin cuando no inicializado se accede a las variables.
La tabla siguiente muestra los tipos de variables ms comunes utilizados en C ++.
TIPO
DESCRIPCIN
USO
int
Positiva y negativa nmeros enteros, el rango depende de compilador int i = 7;
corto (int) Entero corto (por lo general 2 bytes)
s cortos = 13;
de largo (int) Entero largo (normalmente 4 bytes)
largo l = -7;
largo, largo (int) Largo entero largo, rango depende de compilador, pero al menos el
mismo que el largo (generalmente de 8 bytes)
largo, largo ll = 14;
unsigned int
unsigned short (Int)
unsigned long (Int)
unsigned long
de largo (int)
Limita los tipos anteriores a los valores> = 0
unsigned int i = 2;

s cortos sin signo = 23;


l largo sin signo = 5400;
unsigned long long ll = 140;
flotador

Nmeros de coma flotante

flotar 7.2F f =;

Page 3
CAPTULO 1 Un curso intensivo en C ++
TIPO
DESCRIPCIN
USO
doble
Nmeros de doble precisin, la precisin es en menos el mismo que para
flotador
doble d = 7,2;
largo doble
Nmeros de precisin doble de largo, precisin es al menos el mismo
que para doble
long double d = 16.98L;
Char
Un carcter nico
Char = CH 'm';
char16_t
Un solo caracteres de 16 bits
char16_t c16 = u'm ';
char32_t
Un solo carcter de 32 bits
char32_t c32 = U'm ';
wchar_t
Un solo tamao de caracteres anchos depende de compilador
wchar_t w = L'm ';
bool
verdadera o falsa (igual que 0 o no 0)
bool b = true;
auto
El compilador decidir el tipo automticamente
auto i = 7; // Ser un int
decltype (expr) El tipo ser del tipo de la expresin expr
int i = 7;
decltype (i) j = 8; // J
Tambin ser un int
C ++ no proporciona un tipo de cadena bsica. Sin embargo, una implementacin
estndar de una cadena se proporciona como parte de la biblioteca estndar como se
describe ms adelante en este captulo y en el captulo 14.
Las variables se pueden convertir en otros tipos por colada ellos. Por ejemplo, una int
puede ser hechado a un bool. C ++ proporciona tres formas de cambiar de forma
explcita el tipo de una variable. El primer mtodo es una vestigio de C, pero todava se
utiliza la ms comnmente. El segundo mtodo parece ms natural en primero, pero rara
vez se ve. El tercer mtodo es el ms detallado, pero a menudo se considera el ms
limpio.
bool someBool = (bool) someInt; // El mtodo 1
bool someBool = bool (someInt); // El mtodo 2
bool someBool = static_cast <bool> (someInt); // Mtodo 3
El resultado ser falso si el nmero entero 0 y era verdadero de lo contrario. Captulo 9
describe las diferentes fundiciones mtodos con ms detalle. En algunos contextos, las
variables pueden ser emitidos de forma automtica, o coaccionados.
Por ejemplo, una corto se pueden convertir automticamente en un largo porque una
largo representa la mismo tipo de datos con una precisin adicional.
Pgina 4
largo someLong = someShort; // Ninguna conversin explcita necesaria
Cuando se lanza automticamente las variables, es necesario ser conscientes de la
posible prdida de datos. Por ejemplo, echando una float a una int tiros de distancia de

la informacin (la parte fraccionaria del nmero). Muchos compiladores emitir una
advertencia si asigna un flotador a una int sin una conversin explcita. Si est seguro de
que el Tipo de lado izquierdo es totalmente compatible con el tipo de mano derecha, que
est bien para echar implcitamente.
Operadores
De qu sirve una variable si usted no tiene una manera de cambiarlo? La siguiente
tabla muestra los ms operadores comunes que se utilizan en C ++ y cdigo de ejemplo
que hace uso de ellos. Tenga en cuenta que los operadores en C ++ puede ser binario
(operar en dos variables), unario (funcionar con una nica variable), o incluso ternario
(Operar en tres variables). Slo hay un operador ternario en C ++ y se cubre en el
seccin "Condicionales".
OPERADOR
DESCRIPCIN
USO
=
Operador binario para asignar el valor de la derecha a la variable de la izquierda.
int i;
i = 3;
int j;
j = i;
!
Operador unario para complementar el verdadero / falso (no-0/0) estado de una
variable.
bool b = true!;
bool = b!;
+
Operador binario para la adicin.
int i = 3 + 2;
int j = i + 5;
int k = i + j;
*
/ Los operadores binarios para la resta, la multiplicacin y la divisin.
int i = 5-1;
int j = 5 * 2;
int k = j / i;
% Operador binario por el resto de una operacin de divisin. Tambin se conoce como
el operador mod.
int resto = 5% 2;
++ Operador unario que incrementa una variable en 1. Si el operador se produce
despus de la variable o de incremento posterior, el resultado de la expresin es el valor
unincremented. Si el operador ocurre antes de la variable o de incremento previo, la
resultado de la expresin es el nuevo valor.
i ++;
++ i;
- - Operador unario para disminuir una variable por 1.
i--;
--i;
Pgina 5
OPERADOR
DESCRIPCIN
+=
Sintaxis abreviada para i = i + j

USO

i + = j;
-=
*=
/=
%=

Sintaxis abreviada para


i = i - j;
i = i * j;
i = i / j;
i = i% j;
i - = j;
* i = j;
i / = j;
i% = j;

&
&=

Toma los bits en bruto de una variable y realiza un bit a bit "Y" con la otra.
i = j & k;
j & k =;

|
| = Toma los bits en bruto de una variable y realiza un bit a bit "O" con la otra variable.
i = j | k;
j | = k;
<<
>>
<< =
>> = Toma los bits en bruto de una variable y los "cambios" cada uno poco a la
izquierda ( << ) O la derecha ( >> ) El nmero especificado de lugares.
i = i << 1;
i = i >> 4;
i << = 1;
>> i = 4;
^
^ = Realiza una operacin bit a bit en "exclusiva o" los dos argumentos.
i = i ^ j;
i = j ^;
El programa siguiente muestra los tipos de variables ms comunes y de los operadores
en la accin. Si usted es seguro acerca de cmo las variables y los operadores de trabajo,
tratar de averiguar lo que la salida de este programa ser, y luego ejecutarlo para
confirmar su respuesta.
#include <iostream>
using namespace std;
int main ()
{
int someInteger = 256;
someShort corto;
someLong largo;
flotar someFloat;
someDouble doble;
someInteger ++;

someInteger * = 2;
someShort = someInteger (corto);
someLong = someShort * 10000;
someFloat = someLong + 0,785;
someDouble = (doble) someFloat / 100000;
cout << someDouble << endl;
return 0;
}
El compilador de C ++ tiene una receta para el orden en que se evalan las expresiones.
Si usted tiene un compilador lnea de cdigo con muchos operadores, el orden de
ejecucin no puede ser obvia. Por esa razn, es probable que sea mejor para romper un
comunicado complicado en varios estados ms pequeos o explcitamente expresiones
de grupo mediante el uso de parntesis. Por ejemplo, la siguiente lnea de cdigo es
confuso a menos que por casualidad usted conoce el C ++ mesa de precedencia de los
operadores de memoria:
int i = 34 + 8 * 2 + 21/7% 2;
Adicin de parntesis, deja en claro que las operaciones estn pasando en primer lugar:
int i = 34 + (8 * 2) + ((21/7) 2%);
Romper la declaracin en lneas separadas hace que sea an ms claro:
int i = 8 * 2;
int j = 21/7;
j = 2%;
i = 34 + i + j;
Para aquellos de ustedes que juega junto en el pas, los tres enfoques son equivalentes y
terminan con yo igual a 51. Si se supone que C ++ evala las expresiones de izquierda
a derecha, su respuesta sera han sido 1. De hecho, C ++ evala /, * , Y % primera (en la
izquierda a derecha orden), seguido de la adicin y resta, operadores bit a bit a
continuacin. Los parntesis permiten decir explcitamente al compilador que un cierto
operacin debe evaluarse por separado.
Tipos
En C ++, puede utilizar los tipos bsicos (int , bool, Etc.) para construir tipos ms
complejos de su diseo propio. Una vez que usted es un experimentado programador de
C ++, que rara vez se utiliza el siguiente tcnicas, que son caractersticas tradas de C,
porque las clases son mucho ms poderosas. An as, es importante saber acerca de las
dos formas ms comunes de la construccin de tipos para que usted reconocer la
sintaxis.
Tipos enumerados
Un entero que realmente representa un valor dentro de una secuencia -. La secuencia de
nmeros enumerado tipos le permiten definir sus propias secuencias de modo que usted
puede declarar variables con valores en que secuencia. Por ejemplo, en un programa de
ajedrez, que podra representar cada pieza como un int, Con constante

También podría gustarte