SlideShare una empresa de Scribd logo
1 de 14
apd.qxd 26/11/99 14:09 Página 597
APÉNDICE D
PALABRAS RESERVADAS ISO/ANSI C++
asm
Se utiliza para incluir directamente código ensamblador en su programa
C++. El uso correcto de asm depende de la implementación.
Sintaxis
asm <instrucción en ensamblador>;
asm <instrucción –1>; asm <instruccion-2>;...
asm {
secuencia de instrucciones en ensamblador
}
Ejemplos
asm push ds;
asm {
pop ax
inc ax
push ax
}
auto
Es un especificadorde almacenamiento de clases para variables temporales.
Estas variables se crean al introducirse en un bloque de sentencias y se des-
truyen al salir de él. Las variables locales de una función tienen clase de
almacenamiento auto pordefecto (omisión).
bool
Tipo lógico (boolean) que toma valores verdadero (true) o falso (false) que
puede contenerlos literales truey false. Sustituye alsistema tradicionalde C
que considera elvalorcero como falso y distinto de cero como verdadero.
break
break permite salir del bucle do, while o for más interno. También se
puede utilizar para salir de una sentencia switch.
Un ejemplo de break en un bucle es:
while (Z < 10) {
cin >> Z;
if (Z < 0) break; // salir si Z es negativo
cout << “Hola mundo, yo sigo”;
}
case
Sirve para etiquetarlos diferentes casos de la sentencia switch.
Sintaxis
case <valor> : <sentencia>;
...
break;
Ejemplo
switch(numero)
{
case 2 + 5: cout << ”Es 7”;
break;
case 9 : cout << “Es 9”;
break;
default : cout << “N: 7 ni 9”;
}
catch
Se utiliza como mecanismo de tratamiento de excepciones.Su propósito es
interceptar una excepción generada por throw. Dado su carácter experi-
mental, no está implementada en algunos compiladores.
apd.qxd 26/11/99 14:09 Página 598
598 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y O B JETOS
Sintaxis
catch (<excepción> {
// código que manipula excepciones
}
cdecl
La palabra reservada cdecl no forma parte del estándar C++. Fuerza al
compilador a compilar una función de modo que su paso de parámetros siga
la notación estándarde C. Se suele encontraren compiladores que permiten
la especificación de notaciones de Pascal. Se utiliza cuando se está compi-
lando un archivo completo utilizando la opción Pascal y se desea que una
función específica sea compatible con C/C++.
extern cdect printf();
void ponernums (int i, int j, int k);
cdecl main()
{
Si no se especifica ningún especificadorde acceso,elaccesoporomisión
(pordefecto)es private.La lista_de_objetos esopcional,de modo quesi
no se especifica,la declaraciónde una claseno crea objetos de esa clase y se
necesitadefinirelobjeto como sicreara una determinada variable.
const
Es un calificador de tipo, utilizado para indicar que la variable que le sigue
no puede ser modificada por el programa. Esto significa que no se puede
asignarun valora esa variable,incrementarla o decrementarla; sin embargo,
se puede inicializar a un valor dado,cuando se declara.
Sintaxis
const <nombre> = <valor>;
Ejemplo
const int edad = 46;
}
ponernums (1, 5, 9); const in *p = 3025;
void ponernums (int i, int j, int k)
{
printf (“y las respuestas son: %d, %d, %d ´n”, i, j, k);
}
char
Tipo de dato incorporadoen C++.Se puede utilizar char para declararvaria-
bles carácter(tienen un rango de 0 a 255 en código ASCII).
class
Palabra que representa la definición de una clase. Una clase contiene varia-
bles miembros datos y funciones miembro que operan sobre esas variables;
asimismo, una clase tiene un conjunto de especificadores que controlan el
acceso a los miembros de la clase (private, public y protected)
Sintaxis
class nombre_clase: (especificadores de acceso) clase_base
{
// miembros privados por defecto
protected:
// miembros privados se pueden heredar
public:
// miembros públicos
} [lista de objetos];
nombre_clase clase_1, clase_2,...;
const_cast
El operadorconst_cast<T>(e) permite accedera un objeto con el atribu-
to const o volatile adjuntado. El tipo T debe ser del mismo tipo que el
operando e excepto para los modificadores const y volatile y el resul-
tado devuelto porconst_cast() es elmismo que e pero de tipo T.
void func (char* cp)
{}
func(const_cast <char*>(vc));
continue
Se utiliza continue en la ejecución de un bucle. Es equivalente a ejecutar
una sentencia goto al final del bucle. Esta sentencia afecta al bucle más
interno en el que aparece.
Sintaxis
continue;
Ejemplo
for (j = 0, j < 100; j++)
{
if (j == 10) continue;
suma += j;
}
apd.qxd 26/11/99 14:09 Página 599
default
Se utiliza en la sentencia switch para marcar el código que se ejecutará
cuando ninguna de las etiquetas de case se corresponde con la expresión
switch.
Sintaxis
default:<sentencia>;...
delete
El operadorde asignación dinámica delete se utiliza para liberar la memo-
ria apuntada porsu argumento(asignada utilizando new)
Sintaxis
delete <puntero>;
delete <[elementos]> <expresión de conversión de tipo>
Ejemplo
delete objeto_prueba;
delete[100] indicadores; // borra cada uno de los 100 elementos
// indicadores
do
Se utiliza un while para construir bucles iterativos en los cuales las ins-
trucciones delcuerpo delbucle se ejecutan hasta quela condición se evalúa
a 0 (falso).
Sintaxis
do {
<sentencias>
} while (condición);
Como la condición se evalúa al final del bucle,las sentencias se ejecutanal
menos una vez.
Ejemplo
do {
suma += j;
PALAB RAS RESERVADAS ISO/ANSI C++ 599
j++;
} while (j <= 100);
double
Especificadorde tipo de dato double quedeclara variables y arrays de coma
flotante de doble precisión.
Sintaxis
double <nombre_variable>;
dynamic_cast
Este operadorse puede utilizar para moldear (convertirexplícitamente) a un
puntero o a un tipo referencia
Sintaxis
dynamic_cast <T*>(p)
void vp = dynamic_cast <void*> (bp);
else
Se utiliza con if para controlarel flujo de ejecución con sentencias if cuya
sintaxis es:
if (expresión) sentencia_1; else sentencia_2;
donde sentencia_1 se ejecuta siexpresión es distinta de 0 (verdadero)y
sentencia_2 se ejecuta siexpresión es iguala 0 (falso).
enum
Tipo de datos de valor entero que puede tomar sus valores de una lista de
constantes enumerados.
explicit
Declara un constructorexplícito.
apd.qxd 26/11/99 14:09 Página 600
600 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y O B JETOS
Ejemplo
class Punto
{
private:
double x, y, z;
public:
Punto() : x(0.0), y(0.0), z(0.0) {}
explicit Punto ( double d) // constructor explícito
: x(d), y(d), z(d) {}
// función C
extern “C” void Mensaje(void)
Si existen diferentes funciones se pueden declararen una sola declara-
ción entre llaves:
extern “C” {
void Mensaje(void);
void Listo(void);
}
};
// ... Estas definiciones se agruparán en un archivo de cabecera, pero no se
puede declararen otra parte dentro delarchivo de cabecera con enlace “C”.
extern
Especificador de clase de almacenamiento utilizado para indicar al compi-
lador que una variable se declara en otra parte del programa. Si una decla-
ración de variable comienza con la palabra reservada extern no es una
definición, es decir, especifica el tipo y nombre de la variable e implica que
una definición de esta variable se encuentra en otra parte delprograma. Sin
esta palabra reservada, es una definición; cada definición de variable es al
mismo tiempo declaración de variable.
extern int n; // declaración de n (no definición)
Este especificadorse suele utilizar (en archivos compilados)separada-
mente, que comparten los mismos datos globales y se enlazan juntos. Así
porejemplo, si test se declara en otro archivo,como entero,la declaración
siguiente se utilizará en otros archivos:
extern int test;
extern “C” {
// cabeceras de bibliotecas C
#include “dibujar.h”
#include “impresora.h”
}
false
Literal boolean de valor cero.
Ejemplo
bool b1;
bool b2 = false;
bool b3 (true);
int i1 = true
bool function()
{
No utilice extern con frecuencia. Existen otros métodos para pasar
información entre funciones.En general, utilice extern sólo para referirse
a variables globales que se definen en otra parte. Debido a que esta carac-
}
// ...
terística crea espacio permanente para las variables,la mayoría de las varia-
bles locales no son extern.
extern “c”
El prefijo extern “C” permite que un programa C++ pueda llamar expre-
samente a una función C. Si se declara una función externa, un compila-
dor C++ supondrá que es una función C y no producirá errores de compi-
lación.
La solución es especificarelenlace como “C” cuando se declara la fun-
ción:
far
El modificador de tipos far no es parte del estándar C++. Se emplea por
compiladores diseñados para utilizar en la familia 8086 de procesadores,
que fuerzan a una variable puntero a utilizar un direccionamiento de 32 bits
en lugar de 16 bits.
float
float es un especificador de tipos de datos utilizados para declarar varia-
bles de coma flotante.
apd.qxd 26/11/99 14:09 Página 601
for
El bucle for permite inicializar e incrementar variables contadores.
Sintaxis
for (inicialización; condición; incremento) {
<sentencias>
}
Si el bloque de sentencias sólo contiene una,no son necesarias las lla-
ves ({,}).Si la condición es falsa,al comenzar el bucle éste no se ejecutará
ni una sola vez.
Se puede omitir cualquiera de las tres expresiones de for, pero deben
dejarse los puntos y comas (;). Si se omite condición,ésta se considerará
como verdadera.
El bucle infinito es for (;;)y equivale a while(1).
Se puede utilizar el operadorcoma (,) para ponervarias expresiones en
el interior de las diferentes partes de for.
Ejemplo
for(i = 0, j = n-1; i < n; i++, j--)
a[i] = a[j];
friend
La palabra reservada friendse utiliza para garantizar el acceso a una parte
privada (private)de una clase,poruna función que no es miembro de ella
y a las partes protegidas (protected)de una clase de la cual no se derivan.
Las funciones amigas pueden seramigas de más de una clase.
Ejemplo
class Persona {
// ...
public:
// ...
friend void funcamiga(int x, float y);
};
goto
Produce un salto en la ejecución del programa a una etiqueta de la fun-
ción actual. Su uso no está recomendado más que para situaciones excep-
PALAB RAS RESERVADAS ISO/ANSI C++ 601
cionales,tales como la salida directa del bucle más interior perteneciente a
una serie de bucles anidados.
Sintaxis
goto <etiqueta>;
...
etiqueta:
huge
El modificador de tipos huge no forma parte delC++ estándar.Se utiliza en
compiladores construidos basados en la familia de microprocesadores 8086.
Borland/Turbo C++normalmente limitan el tamaño de todos los datos está-
ticos a 64 k; el modelo de memoria huge desborda ese límite, permitiendo
que los datos ocupen más de 64 k.
if
La palabra reservada if se utiliza para ejecutar código sólo bajo ciertas
condiciones.Se puede utilizarif sola o con else.Si las sentencias sólo son
una,no se necesitan las llaves.
Sintaxis
if (condicion) if (condición) {
<sentencia;...> <sentencias1>
else }
<sentencia_esp;...> else {
sentencias2>
}
Si la condición (expresión) se evalúa a cualquier valor distinto de 0,
entonces se ejecutarán sentencias_1 y si no, se ejecutarán senten-
cias_2.
Ejemplo
if(a==x) if(x > 1)
aux = 3; if(y == 2)
aux = 5; z == 5;
if(x > 1) {
if(y == 2)
z == 5;
} else
z = 10;
apd.qxd 26/11/99 14:09 Página 602
602 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y O B JETOS
inline
El especificadorinline instruye alcompiladorpara sustituirlas llamadas a
funciones con el código del cuerpo de la función.Esta sustitución se deno-
mina expansión en línea. El uso de las funciones en línea incrementa el
tamaño del programa objeto, pero puede aumentar la velocidad de ejecu-
ción, eliminando las operaciones auxiliares implicadas en llamadas a fun-
ciones. Las funciones inline son similares a las macros, aunque una fun-
ción inline es mucho más segura.
Sintaxis
1. Función en línea autónoma:
inline <tipo> <nombre_función> (<arg1>,...) {definición función;
}
2. Función en línea definida de una clase:
<tipo> <nombre_función> {definición función;}
Existen dos métodos de utilizar funciones en línea:
1. Declarar una función independiente precediendo a la declaración con la
palabra reservada inline. Se deben declarar y definir antes de que se
haga cualquierllamada a función.
2. Declarar una función miembro de una clase como implícitamente en
línea.
Ejemplo
inline double Cuenta::Balance()
{
return positivo;
}
inline int triple(int Z) {return Z * 3;}
int
Especificador de tipo para variables y arrays de enteros. Los cualificadores
short y long se pueden utilizarpara declararun entero deltamaño deseado.
Sintaxis
int <nombre_variable>;
Ejemplo
int j, x[100];
interrupt
Palabra reservada que no se encuentra en C++ estándar.Esta palabra signi-
fica que una rutina (función) de interrupción del sistema se puede utilizar
como administradorde interrupciones.
long
Especificador de tipo de datos para declarar variables enteros, que ocupa
dos veces más bytes que los enteros de tipo short.
mutable
Permite que un miembro de un objeto anule una constante(const); es decir,
permite que los miembros dato de variables de clase que han sido declara-
dos constantes permanezcan modificables.
class persona {
public
persona(const char* pnombre, int pag, unsigned long noss);
void dinam() {++edad;}
...
private:
const char * nombre;
mutable int edad; // modificable siempre
...
};
...
const persona prueba (“Carchelejo”, 45, 1110111);
...
prueba.diam();// correcto prueba.edad es mutable
namespace
Define un ámbito (rango).
namespace []Acarc {
class mus {...};
class poker {...};
...
}
apd.qxd 26/11/99 14:09 Página 603
near
El modificador near no está definido en C++ estándar.Se utiliza por com-
piladores basados en la familia de microprocesadores 8086, que permiten
utilizar direccionamientos de 16 bits en lugarde 32 bits.
new
El operador new asigna memoria dinámica y devuelve un puntero del tipo
apropiado al mismo.
Sintaxis
var_p = new tipo;
var_p es una variable puntero que recibirá la descripción de la memoria
asignada y tipo es eltipo de dato que la memoria contiene.El operadornew
asigna automáticamente memoria para contener un elemento de datos del
tipo especificado.Si la asignación solicitada falla, new devuelve un puntero
nulo
Ejemplo
double * q; // asigna memoria suficiente para contener
q = new double; // un double
var_p = new tipo(inicializador);
Se inicializa la memoria asignada,especificandoun inicializador (valor
asignado).
var_p = new tipo[tamaño];
Asigna un array de una dimensión.
var_p = new tipo[tamaño1][tamaño2]...
PALAB RAS RESERVADAS ISO/ANSI C++ 603
Sintaxis
nombre_clase::operator opr(lista_parámetros)
La lista de parámetros contiene un parámetro cuando se sobrecarga un
operadorunitario,y dos parámetros cuando se sobrecargaun operadorbina-
rio (en este caso, el operando de la izquierda se para en el primer paráme-
tro,y el operando de la derecha se para en elsegundo parámetro).Porejem-
plo, una clase string puede definirel operador== como sigue:
class string
{
public:
// ...
int operator == (const string & s) const;
// ...
};
pascal
Esta palabra reservada no está definida en C++ estándar. El modificador
pascal es específico a Turbo/Borland C++; está concebido para funciones
(y punteros a funciones) que utilizan la secuencia de paso de parámetros
Pascal.Las funciones declaradas de tipo pascal puedenserllamadas desde
rutinas C, siempre que la rutina C vea que esa función es de tipo pascal.
private
El especificador de acceso private se utiliza para declarar elementos pri-
vados de unaclase;estos miembros no sonaccesibles a ninguna función dis-
tinta de las funciones miembro de esa clase.
Sintaxis
class nombre {
// ...
private:
Asigna arrays multidimensionales. };
// ... miembros privados
Los miembros de una clase son privados pordefecto.
operator
En C++ se pueden sobrecargar las funciones y los operadores. La palabra
reservada operator seutiliza para crear funciones de operadores sobrecar-
gados.Se pueden sobrecargarlos operadores con relación a una clase.
class consumidor {
char nombre[30], // privado por omisión
calle[40],
ciudad[20],
provincia[30];
apd.qxd 26/11/99 14:09 Página 604
604 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y O B JETOS
public:
void ver_datos(void);
void leer_datos(void);
private:
int edad, salario; // también son privados
};
En declaración de clases derivadas también se utiliza private class
tipo_clase_derivada:public|private|protected ...
tipo_clase_base{...}
En este caso private provoca que todos los miembros públicos y pro-
tegidos de la clase base se vuelvan miembros privados de la clase derivada,
y todos los miembros de la clase base privados permanecen en ella.
protected
El especificadorde acceso protectedmarca el comienzo de los miembros
de la clase a los que sólo se puede accederpor los propios miembros de la
clase y porlas funciones miembro de todas las clases derivadas.
Sintaxis
class nombre {
// ...
protected:
Sintaxis
class <nombre_clase> {
...
public:
//miembros públicos, disponibles a todas las funciones
//interiores o exteriores a la clase
};
Cuando se incluye el especificadorpublic en una clase derivada, todos
los miembros públicos de la clasebaseseconviertenen miembros públicos de
la clase derivada,y todos los miembros protegidos de la clase base se convier-
ten en miembros protegidos dela clase derivada.En todos los casos los miem-
bros privados de la clase base permanecen privados,es decir,no se heredan.
register
register es un especificadorde almacenamiento para tipos de datos ente-
ros,utilizados para informar al compilador de que el acceso a los datos debe
ser tan rápido como sea posible. El compilador almacenará los datos ente-
ros en un registro de la CPU, en lugar de situarlos en memoria.
Sintaxis
register <tipo> <nombre_variable>
};
// miembros protegidos (sólo disponibles en clases derivadas)
Ejemplo
Ejemplo
class datos_act {
char nombre[40]
...
protected:
long num_ss;
...
}; // num_ss es protegido
class datos_nuevos:protected datos_act {
...
}; // datos_nuevos puede acceder a num_ss
public
El especificador de acceso public especifica aquellos miembros que son
accesibles públicamente, cualquier función puede acceder a estos miem-
bros.
register int j;
reinterpret_cast
El operadorreinterpret_cast<T>(e) permite a un programadorejecutar
conversiones explícitas de tipos que son generalmente inseguros y depen-
dientes de la implementación.
Derivadax dp1 = reinterpret_cast <Derivada*> (ip);
return
La sentencia return se utiliza para detenerla ejecución de la función actual
y devolverel controlalllamador. Si la función devuelve un valorutiliza una
sentencia
return expresion;
para devolverel valor representadoporla expresión.
apd.qxd 26/11/99 14:09 Página 605
Ejemplo
int max(int a, int b)
{
if(a >= b)
return a;
else
PALAB RAS RESERVADAS ISO/ANSI C++ 605
se declara una variable de tipo static,tendrá almacenamiento permanente
y retiene su valor a lo largo de toda la vida del programa (y, por consi-
guiente,entre llamadas a funciones).staticse utiliza también para ocultar
datos y funciones de otros módulos o archivos.
Sintaxis
}
return b; static <tipo> <nombre_variable>
Ejemplo
short
short es un calificadorde tamaño para variables enteras con y sin signo; al
menos ocupa dos bytes,short significa en realidad signed short int.
signed
El modificador de tipo signed se utiliza para indicar que los datos almace-
nados en un tipo entero (int o char tienen signo). Los valores int,long
y short,pordefecto,tienen signo.
Ejemplo
signed char; // puede tomar valores de –127 a +127
unsigned char; // puede tomar valores de 0 a 255
sizeof
El operadorsizeofdetermina elnúmero de bytes que se utilizan para alma-
cenar una variable particular o tipo de datos. Así, cuando se aplica a una
variable, sizeof devuelve el tamaño del objeto referenciado, y cuando se
aplica a una clase, sizeof devuelve el tamaño total de un objeto de esa
clase.
int j;
longitud = sizeof(int); // valor 2
cout << sizeof j; // visualiza 2
static
static es un modificador de tipo de datos que instruye alcompilador para
crear almacenamiento permanente para la variable local que le precede. Si
static int indice = 0;
static_cast
La sintaxis del operadorstatic_cast <>() es:
static_cast <T>(e)
donde T puede sero bien un tipo definido porel usuario o integral,puntero,
referencia o enum.Sólo realiza verificaciones de tipo estático.
struct
La palabra reservada struct se utiliza para representar el tipo de datos
estructura que reagrupa variables y/o funciones.En C++una estructura tiene
sintaxis idéntica a una clase,con la única diferencia de que en el acceso por
defecto los miembros de una estructura tienenacceso público;mientras que
el acceso pordefecto de una clase es privado.
Sintaxis
struct nombre_estructura {
// miembros públicos por defecto
especificador_de_acceso_1:
tipo elemento1;
tipo elemento2;
...
especificador_de_acceso_2:
tipo elemento3;
tipo elemento4;
...
};
apd.qxd 26/11/99 14:09 Página 606
606 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y O B JETOS
nombre_estructura estruct_1, estruct_2;
struct empleado {
int id;
char nombre[40];
void leer_infor(int i, char *n);
}
empleado e; // declara objeto empleado e
switch
una plantilla definirá una familia de clases o funciones. Por ejemplo, una
plantilla de clases para una clase Pila permitirá crear pilas de diferentes
tipos de datos,tales como int, float o char*.En esencia,para crear una
plantilla de funciones o clases,se definirá una clase o función con un pará-
metro. Por esta razón, las plantillas se conocen también como tipos para-
metrizado o tiposgenéricos.
Una función plantilla adopta el formato:
template <class tipo de dato>
tipo nombre_función(lista de parámetros)
{
La sentencia switch se utiliza para realizar una bifurcación múltiple,
dependiendo delvalorde una expresión.
}
// cuerpo de la función
Sintaxis
swtich (expresion)
{
El siguiente programa crea una función genérica que intercambia los
valores de dos variables con independencia de sus tipos.
#include <iostream.h>
};
case <valor> : sentencia;...
...
default : sentencia;...
template <class Z> // plantilla
void intercambio (Z &a, Z &b)
{
Z aux;
Se debe utilizar break para separarelcódigo de una etiquetade case de
otra. Una etiqueta default marca el código que se ejecutará si ninguna
de las etiquetas de case se corresponde con elvalor de la expresión.
Ejemplo
switch(x) {
case ´A´:
cout << “caso An”;
break;
case ´B´:
case ´C´:
cout << “caso Cn”;
break;
default:
aux = a;
a = b;
b = aux;
}
main()
{
int i = 50, j = 30;
float x = 34.25, y = 16.45;
intercambio(i, j); // se intercambian enteros
intercambio(x, y); // se intercambian reales
cout << “valores de i, j actuales” << i << “” << J << endl;
cout << “valores de x, y actuales” << x << “” << y << endl;
};
cout << “finn”;
break;
}
return 0;
template
La palabra reservada template se utiliza para crear funciones y clases
genéricas.En aquellos compiladores en que está implementada template,
Una declaración de clase genérica o clase plantilla es:
template <class tipo_de_dato>
class nombre_clase {
// ...
};
apd.qxd 26/11/99 14:09 Página 607
Una instancia de una clase genérica se instanciará con:
nombre_clase <tipo> objeto;
El siguiente es un ejemplo de una clase genérica Pila: }
PALAB RAS RESERVADAS ISO/ANSI C++ 607
return FALSE;
} else {
item = Elementos[la_cima --];
return TRUE;
}
template <class Tipo>
class Pila {
public:
Pila();
Boolean meter(const Tipo); // poner un elemento en la pila
Boolean sacar(Tipo&); // quitar un elemento de la pila
private:
tipo Elementos[MaxElementos]; // elementos de la pila
int la_cima; // cima de la pila
};
Instancias deltipo Pila son:
Pila <int> pila_ent; // pila de enteros
Pila <char> pila_car; // pila de caracteres
La sección de implementación de la pila se especifica de un modo
similar utilizando la construccióntemplate.Ésta se utiliza para especificar
cuál es el nombre que actúa como un parámetro tipo antes de especificarla
declaración de cada función miembro.
template <class Tipo>
Pila <Tipo> :: Pila()
Una clase parametrizada puede tener muchos tipos como parámetros.
Por ejemplo, una clase Pila puedetenerdos tipos parametrizados utilizando
template <class Tipo1, class Tipo2> class Pila {
...
...
}
this
this es un puntero al objeto actual, que significa «la dirección del objeto
para el cual esta función fue llamada».
Sintaxis
this
Ejemplo
return this;
return *this;
Si se desea devolver el propio objeto, en lugar de un puntero al mismo, se
{
}
la_cima = -1;
debe utilizar *this.
template <class Tipo>
Boolean Pila <Tipo> :: meter(const Tipo item)
{
if(la_cima <MaxElementos-1) {
Elementos[++ la_cima]-item;
return TRUE;
} else {
return FALSE;
}
}
template <class Tipo>
Boolean Pila <Tipo>:: quitar(Tipo& item)
{
if(la_cima < 0) {
throw
La función throw se utiliza para llamar al mecanismo de tratamiento de
excepciones.
try
{
thow MiExcepción ();
}
try
Indica el comienzo de un bloque de manejadores de excepciones.Un bloque
try tiene el formato:
apd.qxd 26/11/99 14:09 Página 608
608 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y O B JETOS
try
sentencia compuesta
lista de manejadores
void test()
{
try {
...
typename
Una declaración class se puede anidardentro de otra declaración templa-
te class. Si, sin embargo, se utiliza un nombre dentro de una declaración
template class que no se declare explícitamente como un tipo o clase,se
supone que elnombre no nombra un tipo a menos que elnombre esté modi-
ficado porla palabra reservada typename.
}
throw i;
}
catch(int n)
{
if (i > 0) // maneja valores positivos
...
return;
}
else { // maneja parcialmente i <= 0
...
throw; // rethrow
}
template <class T>
class A
{
private:
T datos;
public:
A (): datos () {}
class X // clase local X
{};
Xx; // correcto, T::X es un nombre de tipo
Yy; // error: Y no es un nombre de tipo
T::Zz // error: T::Z no es un nombre de tipo
typename T::I i; // correcto, T::J es un nombre de tipo
typename T::J * ip; // correcto, puntero a T::I
};
true
Valor verdadero (cierto).Uno de los dos valores enumerados deltipo bool.El
literal true(1) se representa porun valordistinto de cero (normalmente 1).
enum Boolean { FALSE, TRUE };
bool boolean;
int i1 = true;
bool b3 (true);
typedef
typedef se utiliza para dar un nuevo nombre a un tipo de dato existente.
Esta característica mejora la legibilidad de un programa.
Sintaxis
typedef tipo_existente nuevo_nombre;
typedef float real;
typedef struct {
float x, y;
{ punto;
union
Tipo de datoqueseutiliza para asignaralmacenamientode diferentes elemen-
tos de datos en la misma posición.La declaraciónde union es la misma que la
de struct, con la diferencia de que en una unión todos los elementos de
datos de la declaracióncompartenla misma posiciónde almacenamiento.
Sintaxis
union <nombre_union>
{
<tipo> <nombre_miembro>
...
}
C++ dispone también de una unión anónima, cuyo formato es:
union {lista_de_miembros};
unsigned
El calificador de tipos unsigned se utiliza para tipos de datos enteros
(char, int, short, int y long int)que informa al compilador que la
apd.qxd 26/11/99 14:09 Página 609
variable se utilizará para almacenar sólo valores no negativos. Este califi-
cadordoble el máximo valor que se pueda almacenar en esa variable.
Sintaxis
unsigned <tipo entero> <nombre_variable>
Ejemplo
unsigned char lista[1000];
unsigned t; // equivale a unsigned int t
using
Declaración using y directiva using. Una declaración using permite a un
cliente teneracceso a todos los nombres delespacio de nombres.
using namespace mcd;
using namespace LJAabc;
juegos primero;
virtual
Especificadorde una función que declara una funciónmiembro de una clase
que se redefinirá poruna clase derivada
class B {
public:
int i;
virtual void imprimir_t() const
{ cout << i << “interior a B” << endl; }
};
void
void es un tipo de dato que se utiliza para indicar la no existencia de un
valor de retorno o argumentos en una declaración y definición de una fun-
ción. Se puede utilizar también void* para declarar un puntero a cualquier
tipo de objeto dado.
Sintaxis
void func(void);
PALAB RAS RESERVADAS ISO/ANSI C++ 609
Ejemplo
void una_funcion(void *ptr);
volatile
El calificador de tipo volatile se utiliza para indicar que la variable que
sigue a volatile se puede modificar por factores externos al control del
programa. Por ejemplo, las variables que se cambian por hardware, tales
como reloj de tiempo real, interrupciones u otras entradas, se declararán
volatile.
wchar_t
Tipo carácter ancho (wide). Se utiliza para representar conjuntos de carac-
teres que requerirá más de los 255 caracteres estándar.Está concebido para
juegos de caracteres que requieren caracteres no representables por char,
tales como el alfabeto japonés kana.
while
La sentencia whilepermite construirun bucle cuyas sentencias interiores se
ejecutan hasta que una condición o expresión se hace falsa (cero).
Sintaxis
while (condicion) {
<sentencias;...>
}
Un bucle while con una sola sentencia en su cuerpo se escribe así:
while (condicion) sentencia;
Ejemplo
// suma de 100 numeros
suma = 0;
while(j <= 10)
{
suma += j;
j++;
}
j = 0;
apd.qxd 26/11/99 14:09 Página 610

Más contenido relacionado

La actualidad más candente

Sentencia de control
Sentencia de controlSentencia de control
Sentencia de controlStalyn Cruz
 
5 sentenciasselectivasocondicionales
5 sentenciasselectivasocondicionales5 sentenciasselectivasocondicionales
5 sentenciasselectivasocondicionalesyomito_2
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de controlparada137
 
13 PHP. Un Ejemplo Con Constantes
13 PHP. Un Ejemplo Con Constantes13 PHP. Un Ejemplo Con Constantes
13 PHP. Un Ejemplo Con ConstantesJosé M. Padilla
 
37 Php. Operadores Condicionales
37 Php. Operadores Condicionales37 Php. Operadores Condicionales
37 Php. Operadores CondicionalesJosé M. Padilla
 
Lenguajesdeprogramacion c nivel1-unidad4
Lenguajesdeprogramacion c nivel1-unidad4Lenguajesdeprogramacion c nivel1-unidad4
Lenguajesdeprogramacion c nivel1-unidad4camnav
 
Aprendiendo php 2
Aprendiendo php 2Aprendiendo php 2
Aprendiendo php 2Erick Trejo
 
Estructuras de repetición en programacion
Estructuras de repetición en programacionEstructuras de repetición en programacion
Estructuras de repetición en programacionSERCOMPFAST
 
Estructuras repetitivas
Estructuras repetitivasEstructuras repetitivas
Estructuras repetitivasyance1
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++die_dex
 
Comenzando a programar
Comenzando a programarComenzando a programar
Comenzando a programarRubén Loredo
 
Js control de flujo
Js control de flujoJs control de flujo
Js control de flujoFERNANDOZ9
 
Condiciones
CondicionesCondiciones
Condicionesyesid19
 
Estructuras de seleccion
Estructuras de seleccionEstructuras de seleccion
Estructuras de seleccionClariza
 
Bucle For Visual Basic
Bucle For Visual BasicBucle For Visual Basic
Bucle For Visual BasicFabianBC20
 

La actualidad más candente (20)

Sentencia de control
Sentencia de controlSentencia de control
Sentencia de control
 
5 sentenciasselectivasocondicionales
5 sentenciasselectivasocondicionales5 sentenciasselectivasocondicionales
5 sentenciasselectivasocondicionales
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Funciones en c++
Funciones en c++Funciones en c++
Funciones en c++
 
13 PHP. Un Ejemplo Con Constantes
13 PHP. Un Ejemplo Con Constantes13 PHP. Un Ejemplo Con Constantes
13 PHP. Un Ejemplo Con Constantes
 
Php basico
Php basicoPhp basico
Php basico
 
Portafolio
PortafolioPortafolio
Portafolio
 
37 Php. Operadores Condicionales
37 Php. Operadores Condicionales37 Php. Operadores Condicionales
37 Php. Operadores Condicionales
 
Lenguajesdeprogramacion c nivel1-unidad4
Lenguajesdeprogramacion c nivel1-unidad4Lenguajesdeprogramacion c nivel1-unidad4
Lenguajesdeprogramacion c nivel1-unidad4
 
Aprendiendo php 2
Aprendiendo php 2Aprendiendo php 2
Aprendiendo php 2
 
Estructuras de repetición en programacion
Estructuras de repetición en programacionEstructuras de repetición en programacion
Estructuras de repetición en programacion
 
Estructuras repetitivas
Estructuras repetitivasEstructuras repetitivas
Estructuras repetitivas
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++
 
Comenzando a programar
Comenzando a programarComenzando a programar
Comenzando a programar
 
05 - Funciones en lenguaje C
05 - Funciones en lenguaje C05 - Funciones en lenguaje C
05 - Funciones en lenguaje C
 
Js control de flujo
Js control de flujoJs control de flujo
Js control de flujo
 
Condiciones
CondicionesCondiciones
Condiciones
 
Estructuras de seleccion
Estructuras de seleccionEstructuras de seleccion
Estructuras de seleccion
 
Java básico
Java  básicoJava  básico
Java básico
 
Bucle For Visual Basic
Bucle For Visual BasicBucle For Visual Basic
Bucle For Visual Basic
 

Similar a Palabras reservadas C

Estructuras de control en Java
Estructuras de control en JavaEstructuras de control en Java
Estructuras de control en Javaquesada_diego
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje ctbjs
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje ctbjs
 
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++die_dex
 
1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguajeyuli02
 
1ra parte elementos basicos del lenguaje
 1ra parte elementos basicos del lenguaje 1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguajeyuli02
 
Lenguaje de programación c
Lenguaje de programación cLenguaje de programación c
Lenguaje de programación cvictdiazm
 
Unidad1
Unidad1Unidad1
Unidad1JHONNY
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1camnav
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Joaquin1418
 
Lenguaje de programacion C++ 1
Lenguaje de programacion C++ 1Lenguaje de programacion C++ 1
Lenguaje de programacion C++ 1David
 
Unidad1
Unidad1Unidad1
Unidad1JHONNY
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Facebook
 
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeLenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeDunkherz
 
Unidad1
Unidad1Unidad1
Unidad1chembe
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++yesid19
 
Lenguajes De Programacion C nivel1-unidad1
Lenguajes De Programacion C nivel1-unidad1Lenguajes De Programacion C nivel1-unidad1
Lenguajes De Programacion C nivel1-unidad1charnisch
 

Similar a Palabras reservadas C (20)

Estructuras de control en Java
Estructuras de control en JavaEstructuras de control en Java
Estructuras de control en Java
 
Semana9b Vbr
Semana9b VbrSemana9b Vbr
Semana9b Vbr
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje c
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje c
 
Clase 6
Clase 6Clase 6
Clase 6
 
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++
 
1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje
 
1ra parte elementos basicos del lenguaje
 1ra parte elementos basicos del lenguaje 1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje
 
Lenguaje de programación c
Lenguaje de programación cLenguaje de programación c
Lenguaje de programación c
 
Unidad1
Unidad1Unidad1
Unidad1
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
 
Lenguaje de programacion C++ 1
Lenguaje de programacion C++ 1Lenguaje de programacion C++ 1
Lenguaje de programacion C++ 1
 
Unidad1
Unidad1Unidad1
Unidad1
 
Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1Lenguajesdeprogramacion c nivel1-unidad1_1
Lenguajesdeprogramacion c nivel1-unidad1_1
 
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeLenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
 
Unidad1
Unidad1Unidad1
Unidad1
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++
 
Lenguajes De Programacion C nivel1-unidad1
Lenguajes De Programacion C nivel1-unidad1Lenguajes De Programacion C nivel1-unidad1
Lenguajes De Programacion C nivel1-unidad1
 

Último

AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 

Último (20)

AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 

Palabras reservadas C

  • 1. apd.qxd 26/11/99 14:09 Página 597 APÉNDICE D PALABRAS RESERVADAS ISO/ANSI C++ asm Se utiliza para incluir directamente código ensamblador en su programa C++. El uso correcto de asm depende de la implementación. Sintaxis asm <instrucción en ensamblador>; asm <instrucción –1>; asm <instruccion-2>;... asm { secuencia de instrucciones en ensamblador } Ejemplos asm push ds; asm { pop ax inc ax push ax } auto Es un especificadorde almacenamiento de clases para variables temporales. Estas variables se crean al introducirse en un bloque de sentencias y se des- truyen al salir de él. Las variables locales de una función tienen clase de almacenamiento auto pordefecto (omisión). bool Tipo lógico (boolean) que toma valores verdadero (true) o falso (false) que puede contenerlos literales truey false. Sustituye alsistema tradicionalde C que considera elvalorcero como falso y distinto de cero como verdadero. break break permite salir del bucle do, while o for más interno. También se puede utilizar para salir de una sentencia switch. Un ejemplo de break en un bucle es: while (Z < 10) { cin >> Z; if (Z < 0) break; // salir si Z es negativo cout << “Hola mundo, yo sigo”; } case Sirve para etiquetarlos diferentes casos de la sentencia switch. Sintaxis case <valor> : <sentencia>; ... break; Ejemplo switch(numero) { case 2 + 5: cout << ”Es 7”; break; case 9 : cout << “Es 9”; break; default : cout << “N: 7 ni 9”; } catch Se utiliza como mecanismo de tratamiento de excepciones.Su propósito es interceptar una excepción generada por throw. Dado su carácter experi- mental, no está implementada en algunos compiladores.
  • 2. apd.qxd 26/11/99 14:09 Página 598 598 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y O B JETOS Sintaxis catch (<excepción> { // código que manipula excepciones } cdecl La palabra reservada cdecl no forma parte del estándar C++. Fuerza al compilador a compilar una función de modo que su paso de parámetros siga la notación estándarde C. Se suele encontraren compiladores que permiten la especificación de notaciones de Pascal. Se utiliza cuando se está compi- lando un archivo completo utilizando la opción Pascal y se desea que una función específica sea compatible con C/C++. extern cdect printf(); void ponernums (int i, int j, int k); cdecl main() { Si no se especifica ningún especificadorde acceso,elaccesoporomisión (pordefecto)es private.La lista_de_objetos esopcional,de modo quesi no se especifica,la declaraciónde una claseno crea objetos de esa clase y se necesitadefinirelobjeto como sicreara una determinada variable. const Es un calificador de tipo, utilizado para indicar que la variable que le sigue no puede ser modificada por el programa. Esto significa que no se puede asignarun valora esa variable,incrementarla o decrementarla; sin embargo, se puede inicializar a un valor dado,cuando se declara. Sintaxis const <nombre> = <valor>; Ejemplo const int edad = 46; } ponernums (1, 5, 9); const in *p = 3025; void ponernums (int i, int j, int k) { printf (“y las respuestas son: %d, %d, %d ´n”, i, j, k); } char Tipo de dato incorporadoen C++.Se puede utilizar char para declararvaria- bles carácter(tienen un rango de 0 a 255 en código ASCII). class Palabra que representa la definición de una clase. Una clase contiene varia- bles miembros datos y funciones miembro que operan sobre esas variables; asimismo, una clase tiene un conjunto de especificadores que controlan el acceso a los miembros de la clase (private, public y protected) Sintaxis class nombre_clase: (especificadores de acceso) clase_base { // miembros privados por defecto protected: // miembros privados se pueden heredar public: // miembros públicos } [lista de objetos]; nombre_clase clase_1, clase_2,...; const_cast El operadorconst_cast<T>(e) permite accedera un objeto con el atribu- to const o volatile adjuntado. El tipo T debe ser del mismo tipo que el operando e excepto para los modificadores const y volatile y el resul- tado devuelto porconst_cast() es elmismo que e pero de tipo T. void func (char* cp) {} func(const_cast <char*>(vc)); continue Se utiliza continue en la ejecución de un bucle. Es equivalente a ejecutar una sentencia goto al final del bucle. Esta sentencia afecta al bucle más interno en el que aparece. Sintaxis continue; Ejemplo for (j = 0, j < 100; j++) { if (j == 10) continue; suma += j; }
  • 3. apd.qxd 26/11/99 14:09 Página 599 default Se utiliza en la sentencia switch para marcar el código que se ejecutará cuando ninguna de las etiquetas de case se corresponde con la expresión switch. Sintaxis default:<sentencia>;... delete El operadorde asignación dinámica delete se utiliza para liberar la memo- ria apuntada porsu argumento(asignada utilizando new) Sintaxis delete <puntero>; delete <[elementos]> <expresión de conversión de tipo> Ejemplo delete objeto_prueba; delete[100] indicadores; // borra cada uno de los 100 elementos // indicadores do Se utiliza un while para construir bucles iterativos en los cuales las ins- trucciones delcuerpo delbucle se ejecutan hasta quela condición se evalúa a 0 (falso). Sintaxis do { <sentencias> } while (condición); Como la condición se evalúa al final del bucle,las sentencias se ejecutanal menos una vez. Ejemplo do { suma += j; PALAB RAS RESERVADAS ISO/ANSI C++ 599 j++; } while (j <= 100); double Especificadorde tipo de dato double quedeclara variables y arrays de coma flotante de doble precisión. Sintaxis double <nombre_variable>; dynamic_cast Este operadorse puede utilizar para moldear (convertirexplícitamente) a un puntero o a un tipo referencia Sintaxis dynamic_cast <T*>(p) void vp = dynamic_cast <void*> (bp); else Se utiliza con if para controlarel flujo de ejecución con sentencias if cuya sintaxis es: if (expresión) sentencia_1; else sentencia_2; donde sentencia_1 se ejecuta siexpresión es distinta de 0 (verdadero)y sentencia_2 se ejecuta siexpresión es iguala 0 (falso). enum Tipo de datos de valor entero que puede tomar sus valores de una lista de constantes enumerados. explicit Declara un constructorexplícito.
  • 4. apd.qxd 26/11/99 14:09 Página 600 600 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y O B JETOS Ejemplo class Punto { private: double x, y, z; public: Punto() : x(0.0), y(0.0), z(0.0) {} explicit Punto ( double d) // constructor explícito : x(d), y(d), z(d) {} // función C extern “C” void Mensaje(void) Si existen diferentes funciones se pueden declararen una sola declara- ción entre llaves: extern “C” { void Mensaje(void); void Listo(void); } }; // ... Estas definiciones se agruparán en un archivo de cabecera, pero no se puede declararen otra parte dentro delarchivo de cabecera con enlace “C”. extern Especificador de clase de almacenamiento utilizado para indicar al compi- lador que una variable se declara en otra parte del programa. Si una decla- ración de variable comienza con la palabra reservada extern no es una definición, es decir, especifica el tipo y nombre de la variable e implica que una definición de esta variable se encuentra en otra parte delprograma. Sin esta palabra reservada, es una definición; cada definición de variable es al mismo tiempo declaración de variable. extern int n; // declaración de n (no definición) Este especificadorse suele utilizar (en archivos compilados)separada- mente, que comparten los mismos datos globales y se enlazan juntos. Así porejemplo, si test se declara en otro archivo,como entero,la declaración siguiente se utilizará en otros archivos: extern int test; extern “C” { // cabeceras de bibliotecas C #include “dibujar.h” #include “impresora.h” } false Literal boolean de valor cero. Ejemplo bool b1; bool b2 = false; bool b3 (true); int i1 = true bool function() { No utilice extern con frecuencia. Existen otros métodos para pasar información entre funciones.En general, utilice extern sólo para referirse a variables globales que se definen en otra parte. Debido a que esta carac- } // ... terística crea espacio permanente para las variables,la mayoría de las varia- bles locales no son extern. extern “c” El prefijo extern “C” permite que un programa C++ pueda llamar expre- samente a una función C. Si se declara una función externa, un compila- dor C++ supondrá que es una función C y no producirá errores de compi- lación. La solución es especificarelenlace como “C” cuando se declara la fun- ción: far El modificador de tipos far no es parte del estándar C++. Se emplea por compiladores diseñados para utilizar en la familia 8086 de procesadores, que fuerzan a una variable puntero a utilizar un direccionamiento de 32 bits en lugar de 16 bits. float float es un especificador de tipos de datos utilizados para declarar varia- bles de coma flotante.
  • 5. apd.qxd 26/11/99 14:09 Página 601 for El bucle for permite inicializar e incrementar variables contadores. Sintaxis for (inicialización; condición; incremento) { <sentencias> } Si el bloque de sentencias sólo contiene una,no son necesarias las lla- ves ({,}).Si la condición es falsa,al comenzar el bucle éste no se ejecutará ni una sola vez. Se puede omitir cualquiera de las tres expresiones de for, pero deben dejarse los puntos y comas (;). Si se omite condición,ésta se considerará como verdadera. El bucle infinito es for (;;)y equivale a while(1). Se puede utilizar el operadorcoma (,) para ponervarias expresiones en el interior de las diferentes partes de for. Ejemplo for(i = 0, j = n-1; i < n; i++, j--) a[i] = a[j]; friend La palabra reservada friendse utiliza para garantizar el acceso a una parte privada (private)de una clase,poruna función que no es miembro de ella y a las partes protegidas (protected)de una clase de la cual no se derivan. Las funciones amigas pueden seramigas de más de una clase. Ejemplo class Persona { // ... public: // ... friend void funcamiga(int x, float y); }; goto Produce un salto en la ejecución del programa a una etiqueta de la fun- ción actual. Su uso no está recomendado más que para situaciones excep- PALAB RAS RESERVADAS ISO/ANSI C++ 601 cionales,tales como la salida directa del bucle más interior perteneciente a una serie de bucles anidados. Sintaxis goto <etiqueta>; ... etiqueta: huge El modificador de tipos huge no forma parte delC++ estándar.Se utiliza en compiladores construidos basados en la familia de microprocesadores 8086. Borland/Turbo C++normalmente limitan el tamaño de todos los datos está- ticos a 64 k; el modelo de memoria huge desborda ese límite, permitiendo que los datos ocupen más de 64 k. if La palabra reservada if se utiliza para ejecutar código sólo bajo ciertas condiciones.Se puede utilizarif sola o con else.Si las sentencias sólo son una,no se necesitan las llaves. Sintaxis if (condicion) if (condición) { <sentencia;...> <sentencias1> else } <sentencia_esp;...> else { sentencias2> } Si la condición (expresión) se evalúa a cualquier valor distinto de 0, entonces se ejecutarán sentencias_1 y si no, se ejecutarán senten- cias_2. Ejemplo if(a==x) if(x > 1) aux = 3; if(y == 2) aux = 5; z == 5; if(x > 1) { if(y == 2) z == 5; } else z = 10;
  • 6. apd.qxd 26/11/99 14:09 Página 602 602 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y O B JETOS inline El especificadorinline instruye alcompiladorpara sustituirlas llamadas a funciones con el código del cuerpo de la función.Esta sustitución se deno- mina expansión en línea. El uso de las funciones en línea incrementa el tamaño del programa objeto, pero puede aumentar la velocidad de ejecu- ción, eliminando las operaciones auxiliares implicadas en llamadas a fun- ciones. Las funciones inline son similares a las macros, aunque una fun- ción inline es mucho más segura. Sintaxis 1. Función en línea autónoma: inline <tipo> <nombre_función> (<arg1>,...) {definición función; } 2. Función en línea definida de una clase: <tipo> <nombre_función> {definición función;} Existen dos métodos de utilizar funciones en línea: 1. Declarar una función independiente precediendo a la declaración con la palabra reservada inline. Se deben declarar y definir antes de que se haga cualquierllamada a función. 2. Declarar una función miembro de una clase como implícitamente en línea. Ejemplo inline double Cuenta::Balance() { return positivo; } inline int triple(int Z) {return Z * 3;} int Especificador de tipo para variables y arrays de enteros. Los cualificadores short y long se pueden utilizarpara declararun entero deltamaño deseado. Sintaxis int <nombre_variable>; Ejemplo int j, x[100]; interrupt Palabra reservada que no se encuentra en C++ estándar.Esta palabra signi- fica que una rutina (función) de interrupción del sistema se puede utilizar como administradorde interrupciones. long Especificador de tipo de datos para declarar variables enteros, que ocupa dos veces más bytes que los enteros de tipo short. mutable Permite que un miembro de un objeto anule una constante(const); es decir, permite que los miembros dato de variables de clase que han sido declara- dos constantes permanezcan modificables. class persona { public persona(const char* pnombre, int pag, unsigned long noss); void dinam() {++edad;} ... private: const char * nombre; mutable int edad; // modificable siempre ... }; ... const persona prueba (“Carchelejo”, 45, 1110111); ... prueba.diam();// correcto prueba.edad es mutable namespace Define un ámbito (rango). namespace []Acarc { class mus {...}; class poker {...}; ... }
  • 7. apd.qxd 26/11/99 14:09 Página 603 near El modificador near no está definido en C++ estándar.Se utiliza por com- piladores basados en la familia de microprocesadores 8086, que permiten utilizar direccionamientos de 16 bits en lugarde 32 bits. new El operador new asigna memoria dinámica y devuelve un puntero del tipo apropiado al mismo. Sintaxis var_p = new tipo; var_p es una variable puntero que recibirá la descripción de la memoria asignada y tipo es eltipo de dato que la memoria contiene.El operadornew asigna automáticamente memoria para contener un elemento de datos del tipo especificado.Si la asignación solicitada falla, new devuelve un puntero nulo Ejemplo double * q; // asigna memoria suficiente para contener q = new double; // un double var_p = new tipo(inicializador); Se inicializa la memoria asignada,especificandoun inicializador (valor asignado). var_p = new tipo[tamaño]; Asigna un array de una dimensión. var_p = new tipo[tamaño1][tamaño2]... PALAB RAS RESERVADAS ISO/ANSI C++ 603 Sintaxis nombre_clase::operator opr(lista_parámetros) La lista de parámetros contiene un parámetro cuando se sobrecarga un operadorunitario,y dos parámetros cuando se sobrecargaun operadorbina- rio (en este caso, el operando de la izquierda se para en el primer paráme- tro,y el operando de la derecha se para en elsegundo parámetro).Porejem- plo, una clase string puede definirel operador== como sigue: class string { public: // ... int operator == (const string & s) const; // ... }; pascal Esta palabra reservada no está definida en C++ estándar. El modificador pascal es específico a Turbo/Borland C++; está concebido para funciones (y punteros a funciones) que utilizan la secuencia de paso de parámetros Pascal.Las funciones declaradas de tipo pascal puedenserllamadas desde rutinas C, siempre que la rutina C vea que esa función es de tipo pascal. private El especificador de acceso private se utiliza para declarar elementos pri- vados de unaclase;estos miembros no sonaccesibles a ninguna función dis- tinta de las funciones miembro de esa clase. Sintaxis class nombre { // ... private: Asigna arrays multidimensionales. }; // ... miembros privados Los miembros de una clase son privados pordefecto. operator En C++ se pueden sobrecargar las funciones y los operadores. La palabra reservada operator seutiliza para crear funciones de operadores sobrecar- gados.Se pueden sobrecargarlos operadores con relación a una clase. class consumidor { char nombre[30], // privado por omisión calle[40], ciudad[20], provincia[30];
  • 8. apd.qxd 26/11/99 14:09 Página 604 604 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y O B JETOS public: void ver_datos(void); void leer_datos(void); private: int edad, salario; // también son privados }; En declaración de clases derivadas también se utiliza private class tipo_clase_derivada:public|private|protected ... tipo_clase_base{...} En este caso private provoca que todos los miembros públicos y pro- tegidos de la clase base se vuelvan miembros privados de la clase derivada, y todos los miembros de la clase base privados permanecen en ella. protected El especificadorde acceso protectedmarca el comienzo de los miembros de la clase a los que sólo se puede accederpor los propios miembros de la clase y porlas funciones miembro de todas las clases derivadas. Sintaxis class nombre { // ... protected: Sintaxis class <nombre_clase> { ... public: //miembros públicos, disponibles a todas las funciones //interiores o exteriores a la clase }; Cuando se incluye el especificadorpublic en una clase derivada, todos los miembros públicos de la clasebaseseconviertenen miembros públicos de la clase derivada,y todos los miembros protegidos de la clase base se convier- ten en miembros protegidos dela clase derivada.En todos los casos los miem- bros privados de la clase base permanecen privados,es decir,no se heredan. register register es un especificadorde almacenamiento para tipos de datos ente- ros,utilizados para informar al compilador de que el acceso a los datos debe ser tan rápido como sea posible. El compilador almacenará los datos ente- ros en un registro de la CPU, en lugar de situarlos en memoria. Sintaxis register <tipo> <nombre_variable> }; // miembros protegidos (sólo disponibles en clases derivadas) Ejemplo Ejemplo class datos_act { char nombre[40] ... protected: long num_ss; ... }; // num_ss es protegido class datos_nuevos:protected datos_act { ... }; // datos_nuevos puede acceder a num_ss public El especificador de acceso public especifica aquellos miembros que son accesibles públicamente, cualquier función puede acceder a estos miem- bros. register int j; reinterpret_cast El operadorreinterpret_cast<T>(e) permite a un programadorejecutar conversiones explícitas de tipos que son generalmente inseguros y depen- dientes de la implementación. Derivadax dp1 = reinterpret_cast <Derivada*> (ip); return La sentencia return se utiliza para detenerla ejecución de la función actual y devolverel controlalllamador. Si la función devuelve un valorutiliza una sentencia return expresion; para devolverel valor representadoporla expresión.
  • 9. apd.qxd 26/11/99 14:09 Página 605 Ejemplo int max(int a, int b) { if(a >= b) return a; else PALAB RAS RESERVADAS ISO/ANSI C++ 605 se declara una variable de tipo static,tendrá almacenamiento permanente y retiene su valor a lo largo de toda la vida del programa (y, por consi- guiente,entre llamadas a funciones).staticse utiliza también para ocultar datos y funciones de otros módulos o archivos. Sintaxis } return b; static <tipo> <nombre_variable> Ejemplo short short es un calificadorde tamaño para variables enteras con y sin signo; al menos ocupa dos bytes,short significa en realidad signed short int. signed El modificador de tipo signed se utiliza para indicar que los datos almace- nados en un tipo entero (int o char tienen signo). Los valores int,long y short,pordefecto,tienen signo. Ejemplo signed char; // puede tomar valores de –127 a +127 unsigned char; // puede tomar valores de 0 a 255 sizeof El operadorsizeofdetermina elnúmero de bytes que se utilizan para alma- cenar una variable particular o tipo de datos. Así, cuando se aplica a una variable, sizeof devuelve el tamaño del objeto referenciado, y cuando se aplica a una clase, sizeof devuelve el tamaño total de un objeto de esa clase. int j; longitud = sizeof(int); // valor 2 cout << sizeof j; // visualiza 2 static static es un modificador de tipo de datos que instruye alcompilador para crear almacenamiento permanente para la variable local que le precede. Si static int indice = 0; static_cast La sintaxis del operadorstatic_cast <>() es: static_cast <T>(e) donde T puede sero bien un tipo definido porel usuario o integral,puntero, referencia o enum.Sólo realiza verificaciones de tipo estático. struct La palabra reservada struct se utiliza para representar el tipo de datos estructura que reagrupa variables y/o funciones.En C++una estructura tiene sintaxis idéntica a una clase,con la única diferencia de que en el acceso por defecto los miembros de una estructura tienenacceso público;mientras que el acceso pordefecto de una clase es privado. Sintaxis struct nombre_estructura { // miembros públicos por defecto especificador_de_acceso_1: tipo elemento1; tipo elemento2; ... especificador_de_acceso_2: tipo elemento3; tipo elemento4; ... };
  • 10. apd.qxd 26/11/99 14:09 Página 606 606 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y O B JETOS nombre_estructura estruct_1, estruct_2; struct empleado { int id; char nombre[40]; void leer_infor(int i, char *n); } empleado e; // declara objeto empleado e switch una plantilla definirá una familia de clases o funciones. Por ejemplo, una plantilla de clases para una clase Pila permitirá crear pilas de diferentes tipos de datos,tales como int, float o char*.En esencia,para crear una plantilla de funciones o clases,se definirá una clase o función con un pará- metro. Por esta razón, las plantillas se conocen también como tipos para- metrizado o tiposgenéricos. Una función plantilla adopta el formato: template <class tipo de dato> tipo nombre_función(lista de parámetros) { La sentencia switch se utiliza para realizar una bifurcación múltiple, dependiendo delvalorde una expresión. } // cuerpo de la función Sintaxis swtich (expresion) { El siguiente programa crea una función genérica que intercambia los valores de dos variables con independencia de sus tipos. #include <iostream.h> }; case <valor> : sentencia;... ... default : sentencia;... template <class Z> // plantilla void intercambio (Z &a, Z &b) { Z aux; Se debe utilizar break para separarelcódigo de una etiquetade case de otra. Una etiqueta default marca el código que se ejecutará si ninguna de las etiquetas de case se corresponde con elvalor de la expresión. Ejemplo switch(x) { case ´A´: cout << “caso An”; break; case ´B´: case ´C´: cout << “caso Cn”; break; default: aux = a; a = b; b = aux; } main() { int i = 50, j = 30; float x = 34.25, y = 16.45; intercambio(i, j); // se intercambian enteros intercambio(x, y); // se intercambian reales cout << “valores de i, j actuales” << i << “” << J << endl; cout << “valores de x, y actuales” << x << “” << y << endl; }; cout << “finn”; break; } return 0; template La palabra reservada template se utiliza para crear funciones y clases genéricas.En aquellos compiladores en que está implementada template, Una declaración de clase genérica o clase plantilla es: template <class tipo_de_dato> class nombre_clase { // ... };
  • 11. apd.qxd 26/11/99 14:09 Página 607 Una instancia de una clase genérica se instanciará con: nombre_clase <tipo> objeto; El siguiente es un ejemplo de una clase genérica Pila: } PALAB RAS RESERVADAS ISO/ANSI C++ 607 return FALSE; } else { item = Elementos[la_cima --]; return TRUE; } template <class Tipo> class Pila { public: Pila(); Boolean meter(const Tipo); // poner un elemento en la pila Boolean sacar(Tipo&); // quitar un elemento de la pila private: tipo Elementos[MaxElementos]; // elementos de la pila int la_cima; // cima de la pila }; Instancias deltipo Pila son: Pila <int> pila_ent; // pila de enteros Pila <char> pila_car; // pila de caracteres La sección de implementación de la pila se especifica de un modo similar utilizando la construccióntemplate.Ésta se utiliza para especificar cuál es el nombre que actúa como un parámetro tipo antes de especificarla declaración de cada función miembro. template <class Tipo> Pila <Tipo> :: Pila() Una clase parametrizada puede tener muchos tipos como parámetros. Por ejemplo, una clase Pila puedetenerdos tipos parametrizados utilizando template <class Tipo1, class Tipo2> class Pila { ... ... } this this es un puntero al objeto actual, que significa «la dirección del objeto para el cual esta función fue llamada». Sintaxis this Ejemplo return this; return *this; Si se desea devolver el propio objeto, en lugar de un puntero al mismo, se { } la_cima = -1; debe utilizar *this. template <class Tipo> Boolean Pila <Tipo> :: meter(const Tipo item) { if(la_cima <MaxElementos-1) { Elementos[++ la_cima]-item; return TRUE; } else { return FALSE; } } template <class Tipo> Boolean Pila <Tipo>:: quitar(Tipo& item) { if(la_cima < 0) { throw La función throw se utiliza para llamar al mecanismo de tratamiento de excepciones. try { thow MiExcepción (); } try Indica el comienzo de un bloque de manejadores de excepciones.Un bloque try tiene el formato:
  • 12. apd.qxd 26/11/99 14:09 Página 608 608 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y O B JETOS try sentencia compuesta lista de manejadores void test() { try { ... typename Una declaración class se puede anidardentro de otra declaración templa- te class. Si, sin embargo, se utiliza un nombre dentro de una declaración template class que no se declare explícitamente como un tipo o clase,se supone que elnombre no nombra un tipo a menos que elnombre esté modi- ficado porla palabra reservada typename. } throw i; } catch(int n) { if (i > 0) // maneja valores positivos ... return; } else { // maneja parcialmente i <= 0 ... throw; // rethrow } template <class T> class A { private: T datos; public: A (): datos () {} class X // clase local X {}; Xx; // correcto, T::X es un nombre de tipo Yy; // error: Y no es un nombre de tipo T::Zz // error: T::Z no es un nombre de tipo typename T::I i; // correcto, T::J es un nombre de tipo typename T::J * ip; // correcto, puntero a T::I }; true Valor verdadero (cierto).Uno de los dos valores enumerados deltipo bool.El literal true(1) se representa porun valordistinto de cero (normalmente 1). enum Boolean { FALSE, TRUE }; bool boolean; int i1 = true; bool b3 (true); typedef typedef se utiliza para dar un nuevo nombre a un tipo de dato existente. Esta característica mejora la legibilidad de un programa. Sintaxis typedef tipo_existente nuevo_nombre; typedef float real; typedef struct { float x, y; { punto; union Tipo de datoqueseutiliza para asignaralmacenamientode diferentes elemen- tos de datos en la misma posición.La declaraciónde union es la misma que la de struct, con la diferencia de que en una unión todos los elementos de datos de la declaracióncompartenla misma posiciónde almacenamiento. Sintaxis union <nombre_union> { <tipo> <nombre_miembro> ... } C++ dispone también de una unión anónima, cuyo formato es: union {lista_de_miembros}; unsigned El calificador de tipos unsigned se utiliza para tipos de datos enteros (char, int, short, int y long int)que informa al compilador que la
  • 13. apd.qxd 26/11/99 14:09 Página 609 variable se utilizará para almacenar sólo valores no negativos. Este califi- cadordoble el máximo valor que se pueda almacenar en esa variable. Sintaxis unsigned <tipo entero> <nombre_variable> Ejemplo unsigned char lista[1000]; unsigned t; // equivale a unsigned int t using Declaración using y directiva using. Una declaración using permite a un cliente teneracceso a todos los nombres delespacio de nombres. using namespace mcd; using namespace LJAabc; juegos primero; virtual Especificadorde una función que declara una funciónmiembro de una clase que se redefinirá poruna clase derivada class B { public: int i; virtual void imprimir_t() const { cout << i << “interior a B” << endl; } }; void void es un tipo de dato que se utiliza para indicar la no existencia de un valor de retorno o argumentos en una declaración y definición de una fun- ción. Se puede utilizar también void* para declarar un puntero a cualquier tipo de objeto dado. Sintaxis void func(void); PALAB RAS RESERVADAS ISO/ANSI C++ 609 Ejemplo void una_funcion(void *ptr); volatile El calificador de tipo volatile se utiliza para indicar que la variable que sigue a volatile se puede modificar por factores externos al control del programa. Por ejemplo, las variables que se cambian por hardware, tales como reloj de tiempo real, interrupciones u otras entradas, se declararán volatile. wchar_t Tipo carácter ancho (wide). Se utiliza para representar conjuntos de carac- teres que requerirá más de los 255 caracteres estándar.Está concebido para juegos de caracteres que requieren caracteres no representables por char, tales como el alfabeto japonés kana. while La sentencia whilepermite construirun bucle cuyas sentencias interiores se ejecutan hasta que una condición o expresión se hace falsa (cero). Sintaxis while (condicion) { <sentencias;...> } Un bucle while con una sola sentencia en su cuerpo se escribe así: while (condicion) sentencia; Ejemplo // suma de 100 numeros suma = 0; while(j <= 10) { suma += j; j++; } j = 0;
  • 14. apd.qxd 26/11/99 14:09 Página 610