Sie sind auf Seite 1von 45

UNIVERSIDAD DE GUAYAQUIL

FACULTAD DE INGENIERA INDUSTRIAL

CARRERA
INGENIERA EN TELEMTICA

TEMA
PALABRAS RESERVADAS EN C++
DIFERENCIAS EN C++ Y VISUAL C++
PALABRAS RESERVADAS COMPATIBLES CON
C++ Y VISUAL C++

MATERIA
PROGRAMACIN ESTRUCTURADA

CURSO
SEGUNDO SEMESTRE C

ESTUDIANTE
AVILS MERA VIVIANA MELINA

DOCENTE
ING. GARCA TORRES INGRID ANGLICA

2017 2018
GUAYAQUIL ECUADOR
INTRODUCCIN

El lenguaje C permite que el programador introduzca comentarios en los ficheros fuente


que contienen el cdigo de su programa.
La misin de los comentarios es servir de explicacin o aclaracin sobre cmo est hecho
el programa, de forma que pueda ser entendido por una persona diferente (o por el propio
programador algn tiempo despus). Los comentarios son tambin particularmente tiles
(y peligrosos...) cuando el programa forma parte de un examen que el profesor debe
corregir. El compilador 2 ignora por completo los comentarios.

Los caracteres (/*) se emplean para iniciar un comentario introducido entre el cdigo del
programa; el comentario termina con los caracteres (*/). No se puede introducir un
comentario dentro de otro. Todo texto introducido entre los smbolos de comienzo (/*) y
final (*/) de comentario son siempre ignorados por el compilador.
Por ejemplo: variable_1 = variable_2; /*En esta lnea se asigna a
variable_1 el valor
contenido en variable_2 */

Los comentarios pueden actuar tambin como separadores de otros tokens propios del
lenguaje C. Una fuente frecuente de errores no especialmente difciles de detectar al
programar en C, es el olvidarse de cerrar un comentario que se ha abierto previamente.
El lenguaje ANSI C permite tambin otro tipo de comentarios, tomado del C++. Todo lo
que va en cualquier lnea del cdigo detrs de la doble barra (//) y hasta el final de la lnea,
se considera como un comentario y es ignorado por el compilador. Para comentarios
cortos, esta forma es ms cmoda que la anterior, pues no hay que preocuparse de cerrar
el comentario (el fin de lnea acta como cierre). Como contrapartida, si un comentario
ocupa varias lneas hay que repetir la doble barra (//) en cada una de las lneas. Con este
segundo procedimiento de introducir comentarios, el ltimo ejemplo podra ponerse en la
forma:
variable_1 = variable_2; // En esta lnea se asigna a
// variable_1 el valor
// contenido en variable_2
PALABRAS RESERVADAS EN C++
En C, como en cualquier otro lenguaje, existen una serie de palabras clave (keywords)
que el usuario no puede utilizar como identificadores (nombres de variables y/o de
funciones). Estas palabras sirven para indicar al computador que realice una tarea muy
determinada (desde evaluar una comparacin, hasta definir el tipo de una variable) y
tienen un especial significado para el compilador. El C es un lenguaje muy conciso, con
muchas menos palabras clave que otros lenguajes. A continuacin, se presenta la lista de
las 32 palabras clave del ANSI C, para las que ms adelante se dar detalle de su
significado (algunos compiladores aaden otras palabras clave, propias de cada uno de
ellos. Es importante evitarlas como identificadores):

ASM
Se utiliza para incluir directamente cdigo ensamblador en su programa C++. El uso
correcto de asm depende de la implementacin.
Sintaxis
asm <instruccin en ensamblador>;
asm<instruccin -1>; asm<instruccin -2>;
asm{
Secuencia de instrucciones en esamblador
}
EJEMPLOS
asm push ds;
asm{
pop ax
inc ax
push ax
}

Auto
Es un especificador de almacenamiento de clases para variables temporales. Estas
variables se crean al introducirse en un bloque de sentencias y se destruyen al salir de l.
Las variables locales de una funcin tienen clase de almacenamiento auto por defecto
(omisin).

Bool
Tipo lgico (boolean) que toma valores verdadero (true) o falso (false) que puede
contener los literales true y false. Sustituye al sistema tradicional de C que considera el
valor cero como falso y distinto de cero como verdadero.
break
break permite salir del bucle do, while o for ms interno. Tambin 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 etiquetar los 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 propsito es interceptar
una excepcin generada por throw. Dado su carcter experimental, no est implementada
en algunos compiladores.
SINTAXIS
catch (<excepcin> {
// cdigo que manipula excepciones
}

Cdecl
La palabra reservada cdecl no forma parte del estndar C++. Fuerza al compilador a
compilar una funcin de modo que su paso de parmetros siga la notacin estndar de C.
Se suele encontrar en compiladores que permiten la especificacin de notaciones de
Pascal. Se utiliza cuando se est compilando un archivo completo utilizando la opcin
Pascal y se desea que una funcin especfica sea compatible con C/C++.
extern cdect printf();
void ponernums (int i, int j, int k);
cdecl main()
{
ponernums (1, 5, 9);
}
void ponernums (int i, int j, int k)
{
printf (y las respuestas son: %d, %d, %d n, i, j, k);
}

Char
Tipo de dato incorporado en C++. Se puede utilizar char para declarar variables carcter
(tienen un rango de 0 a 255 en cdigo ASCII).

Class
Palabra que representa la definicin de una clase. Una clase contiene variables 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
do {
<sentencias>
} while (condicin);
Como la condicin se evala al final del bucle, las sentencias se ejecutan al menos una
vez.
EJEMPLO
do {
suma += j;
j++;
} while (j <= 100);

Doubl
Especificador de tipo de dato double que declara variables y arrays de coma flotante de
doble precisin.
SINTAXIS
Doubl <nombre_variable>;

Dynamic_cast
Este operador se puede utilizar para moldear (convertir explcitamente) 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 controlar el flujo de ejecucin con sentencias if cuya sintaxis es:
if (expresin) sentencia_1; else sentencia_2;
Donde sentencia_1 se ejecuta si expresin es distinta de 0 (verdadero) y sentencia_2 se
ejecuta si expresin es igual a 0 (falso).

Enum
Tipo de datos de valor entero que puede tomar sus valores de una lista de constantes
enumerados.

Explicit
Declara un constructor explcito.
EJEMPLO
class Punto
{
private:
double x, y, z;
public:
Punto() : x(0.0), y(0.0), z(0.0) {}
explicit Punto ( double d) // constructor explcito
: x(d), y(d), z(d) {}
// ...
};

Extern
Especificador de clase de almacenamiento utilizado para indicar al compilador que una
variable se declara en otra parte del programa. Si una declaracin de variable comienza
con la palabra reservada extern no es una definicin, es decir, especifica el tipo y nombre
de la variable e implica que una definicin de esta variable se encuentra en otra parte del
programa. Sin esta palabra reservada, es una definicin; cada definicin de variable es al
mismo tiempo declaracin de variable.
extern int n; // declaracin de n (no definicin)
Este especificador se suele utilizar (en archivos compilados) separadamente, que
comparten los mismos datos globales y se enlazan juntos. As por ejemplo, si test se
declara en otro archivo, como entero, la declaracin siguiente se utilizar en otros
archivos:
extern int test;
No utilice extern con frecuencia. Existen otros mtodos para pasar informacin entre
funciones. En general, utilice extern slo para referirse a variables globales que se definen
en otra parte. Debido a que esta caracterstica crea espacio permanente para las variables,
la mayora de las variables locales no son extern.

Extern c
El prefijo extern C permite que un programa C++ pueda llamar expresamente a una
funcin C. Si se declara una funcin externa, un compilador C++ supondr que es una
funcin C y no producir errores de compilacin. La solucin es especificar el enlace
como C cuando se declara la funcin:
// funcin C

extern C void Mensaje(void)

Si existen diferentes funciones se pueden declarar en una sola declaracin entre llaves:
extern C {
void Mensaje(void);
void Listo(void);
}
Estas definiciones se agruparn en un archivo de cabecera, pero no se puede declarar en
otra parte dentro del archivo de cabecera con enlace C.
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()
{
// ...
}

Far
El modificador de tipos far no es parte del estndar C++. Se emplea por compiladores
diseados 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 variables de coma
flotante.

For
El bucle for permite inicializar e incrementar variables contadores.
SINTAXIS
for (inicializacin; condicin; incremento) {
<sentencias> }
Si el bloque de sentencias slo contiene una, no son necesarias las llaves ({,}). Si la
condicin 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 condicin, sta se considerar como verdadera.
El bucle infinito es for (;;)y equivale a while(1). Se puede utilizar el operador coma (,)
para poner varias 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 friend se utiliza para garantizar el acceso a una parte privada
(private) de una clase, por una funcin 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 ser amigas
de ms de una clase.
EJEMPLO
class Persona {
// ...
public:
// ...
friend void funcamiga(int x, float y);
};

Goto
Produce un salto en la ejecucin del programa a una etiqueta de la funcin actual. Su uso
no est recomendado ms que para situaciones excepcionales, tales como la salida directa
del bucle ms interior perteneciente a una serie de bucles anidados
SINTAXIS
goto <etiqueta>;
...
etiqueta:

Huge
El modificador de tipos huge no forma parte del C++ estndar. Se utiliza en compiladores
construidos basados en la familia de microprocesadores 8086. Borland/Turbo C++
normalmente limitan el tamao de todos los datos est- ticos a 64 k; el modelo de memoria
huge desborda ese lmite, permitiendo que los datos ocupen ms de 64 k.

If
La palabra reservada if se utiliza para ejecutar cdigo slo bajo ciertas condiciones. Se
puede utilizar if sola o con else. Si las sentencias slo son una, no se necesitan las llaves.
SINTAXIS
if (condicion) if (condicin) {
<sentencia,> <sentencias1>
Else }
<sentencia_esp;> else {
sentencias2>
}
Si la condicin (expresin) se evala a cualquier valor distinto de 0, entonces se
ejecutarn sentencias_1 y si no, se ejecutarn sentencias_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;

Inline
El especificador inline instruye al compilador para sustituir las llamadas a funciones con
el cdigo del cuerpo de la funcin. Esta sustitucin se denomina expansin en lnea. El
uso de las funciones en lnea incrementa el tamao del programa objeto, pero puede
aumentar la velocidad de ejecucin, eliminando las operaciones auxiliares implicadas en
llamadas a funciones. Las funciones inline son similares a las macros, aunque una funcin
inline es mucho ms segura.
SINTAXIS
1. Funcin en lnea autnoma:
Inline <tipo> <nombre_funcion> (<argl>,) {definicin funcin;}
2. Funcin en lnea definida de una clase:
<tipo> <nombre_funcion> {definicin funcin;}
Existen dos mtodos de utilizar funciones en lnea:
1. Declarar una funcin independiente precediendo a la declaracin con la palabra
reservada inline. Se deben declarar y definir antes de que se haga cualquier llamada a
funcin.
2. Declarar una funcin miembro de una clase como implcitamente en lnea.
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 utilizar para declarar un entero del tamao deseado.
SINTAXIS
Int <nombre_variable>;
EJEMPLO
int j, x[100];

Interrupt
Palabra reservada que no se encuentra en C++ estndar. Esta palabra significa que una
rutina (funcin) de interrupcin del sistema se puede utilizar como administrador de
interrupciones.

Long
Especificador de tipo de datos para declarar variables enteros, que ocupa dos veces ms
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 declarados 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 {...};
...
}

Near
El modificador near no est definido en C++ estndar. Se utiliza por compiladores
basados en la familia de microprocesadores 8086, que permiten utilizar
direccionamientos de 16 bits en lugar de 32 bits.

New
El operador new asigna memoria dinmica y devuelve un puntero del tipo apropiado al
mismo.
SINTAXIS
var_p = new tipo;
var_p es una variable puntero que recibir la descripcin de la memoria asignada y tipo
es el tipo de dato que la memoria contiene. El operador new asigna automticamente
memoria para contener un elemento de datos del tipo especificado. Si la asignacin
solicitada falla, new devuelve un puntero nulo
EJEMPLO
double * q; // asigna memoria suficiente para contener q = new double; // un doubl

var_p = new tipo(inicializador);


Se inicializa la memoria asignada, especificando un inicializador (valor asignado).

var_p = new tipo[tamao];

Asigna un array de una dimensin.

var_p = new tipo[tamao1][tamao2]...

Asigna arrays multidimensionales.

Operator
En C++ se pueden sobrecargar las funciones y los operadores. La palabra reservada
operator se utiliza para crear funciones de operadores sobrecargados. Se pueden
sobrecargar los operadores con relacin a una clase.
SINTAXIS
nombre_clase::operator opr(lista_parmetros)
La lista de parmetros contiene un parmetro cuando se sobrecarga un operador unitario,
y dos parmetros cuando se sobrecarga un operador binario (en este caso, el operando de
la izquierda se para en el primer parmetro, y el operando de la derecha se para en el
segundo parmetro). Por ejemplo, una clase string puede definir el operador == como
sigue:
class string
{
public:
// ...
int operator == (const string & s) const;
// ...
};

Pascal
Esta palabra reservada no est definida en C++ estndar. El modificador pascal es
especfico a Turbo/Borland C++; est concebido para funciones (y punteros a funciones)
que utilizan la secuencia de paso de parmetros Pascal. Las funciones declaradas de tipo
pascal pueden ser llamadas desde rutinas C, siempre que la rutina C vea que esa funcin
es de tipo pascal.

Private
El especificador de acceso private se utiliza para declarar elementos privados de una
clase; estos miembros no son accesibles a ninguna funcin distinta de las funciones
miembro de esa clase.
SINTAXIS
class nombre {
// ...
private:
// ... miembros privados
};
Los miembros de una clase son privados por defecto.
class consumidor {
char nombre[30], // privado por omisin
calle[40],
ciudad[20],
provincia[30];
public:
void ver_datos(void);
void leer_datos(void);
private:
int edad, salario; // tambin son privados
};
En declaracin de clases derivadas tambin se utiliza private class tipo_clase_derivada:
public|private|protected ... tipo_clase_base{...} En este caso private provoca que todos los
miembros pblicos y protegidos 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 especificador de acceso protected marca el comienzo de los miembros de la clase a los
que slo se puede acceder por los propios miembros de la clase y por las funciones
miembro de todas las clases derivadas.
SINTAXIS
class nombre {
// ...
protected:
// miembros protegidos (slo disponibles en clases derivadas) };
EJEMPLO
class datos_act {
char nombre[40]
...
protected: l
ong 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
pblicamente, cualquier funcin puede acceder a estos miembros.
SINTAXIS
Class <nombre_clase> {
...
public:
//miembros pblicos, disponibles a todas las funciones //interiores o
exteriores a la clase
};
Cuando se incluye el especificador public en una clase derivada, todos los miembros
pblicos de la clase base se convierten en miembros pblicos de la clase derivada, y todos
los miembros protegidos de la clase base se convierten en miembros protegidos de la clase
derivada. En todos los casos los miembros privados de la clase base permanecen privados,
es decir, no se heredan.

Register
register es un especificador de almacenamiento para tipos de datos enteros, utilizados para
informar al compilador de que el acceso a los datos debe ser tan rpido como sea posible.
El compilador almacenar los datos enteros en un registro de la CPU, en lugar de situarlos
en memoria.
SINTAXIS
Register <tipo> <nombre_variable>
EJEMPLO
register int j;
reinterpret_cast
El operador reinterpret_cast(e) permite a un programador ejecutar conversiones explcitas
de tipos que son generalmente inseguros y dependientes de la implementacin.
Derivadax dp1 = reinterpret_cast <Derivada*> (ip);

Return
La sentencia return se utiliza para detener la ejecucin de la funcin actual y devolver el control
al llamador. Si la funcin devuelve un valor utiliza una sentencia

return expresion;

para devolver el valor representado por la expresin.

EJEMPLO

int max(int a, int b)

if(a >= b)

return a;

else return b;

Short
short es un calificador de tamao 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 almacenados en un tipo
entero (int o char tienen signo). Los valores int, long y short, por defecto, tienen signo.
EJEMPLO
signed char; // puede tomar valores de 127 a +127
unsigned char; // puede tomar valores de 0 a 255

Sizeof
El operador sizeof determina el nmero de bytes que se utilizan para almacenar una
variable particular o tipo de datos. As, cuando se aplica a una variable, sizeof devuelve
el tamao del objeto referenciado, y cuando se aplica a una clase, sizeof devuelve el
tamao 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 al compilador para crear
almacenamiento permanente para la variable local que le precede. Si 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 consiguiente, entre llamadas a funciones). static se
utiliza tambin para ocultar datos y funciones de otros mdulos o archivos.
SINTAXIS
Static <tipo> <nombre_variable>
EJEMPLO
static int indice = 0;

Static_cast
La sintaxis del operador static_cast <>() es:
static_cast <T> (e)
donde T puede ser o bien un tipo definido por el usuario o integral, puntero, referencia o
enum. Slo realiza verificaciones de tipo esttico.

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 idntica a una
clase, con la nica diferencia de que en el acceso por defecto los miembros de una
estructura tienen acceso pblico; mientras que el acceso por defecto de una clase es
privado.
SINTAXIS
struct nombre_estructura {
// miembros pblicos por defecto
especificador_de_acceso_1:
tipo elemento1;
tipo elemento2;
...
especificador_de_acceso_2:
tipo elemento3;
tipo elemento4;
...
};
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
La sentencia switch se utiliza para realizar una bifurcacin mltiple, dependiendo del
valor de una expresin.
SINTAXIS
swtich (expresion)
{
Case <valor>: sentencia;
...
default : sentencia;...
};
Se debe utilizar break para separar el cdigo de una etiqueta de case de otra. Una etiqueta
default marca el cdigo que se ejecutar si ninguna de las etiquetas de case se corresponde
con el valor de la expresin.
EJEMPLO
switch(x) {
case A: cout << caso A\n;
break;
case B:
case C:
cout << caso C\n;
break;
default:
cout << fin\n;
break;
};

Template
La palabra reservada template se utiliza para crear funciones y clases genricas. En
aquellos compiladores en que est implementada template, 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 funcin con un par-
metro. Por esta razn, las plantillas se conocen tambin como tipos parametrizado o tipos
genricos.
Una funcin plantilla adopta el formato:
template <clase tipo de dato>
tipo nombre_funcin(lista de parmetros)
{
// cuerpo de la funcin
}
El siguiente programa crea una funcin genrica que intercambia los valores de dos
variables con independencia de sus tipos.
#include <iostream.h>
template <class z> // plantilla void intercambio (Z &a, Z &b)
{
Z aux;
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;
return 0;
}
Una declaracin de clase genrica o clase plantilla es:
template <class tipo_de_dato>
class nombre_clase {
// ...
};
Una instancia de una clase genrica se instanciar con:
nombre_clase <tipo> objeto;

This
This es un puntero al objeto actual, que significa la direccin del objeto para el cual esta
funcin fue llamada
SINTAXIS
This
EJEMPLO
return this;
return *this;
Si se desea devolver el propio objeto, en lugar de un puntero al mismo, se debe utilizar
*this.
Throw
La funcin throw se utiliza para llamar al mecanismo de tratamiento de excepciones.
Try
{
thow MiExcepcin ();
}

Try
Indica el comienzo de un bloque de manejadores de excepciones. Un bloque try tiene el
formato:
try
sentencia compuesta
lista de manejadores
void test()
{
try {
...
throw i;
}
catch(int n)
{
if (i > 0) // maneja valores positivos
...
return;
}
else { // maneja parcialmente i <= 0
...
throw; // rethrow
}
}

True
Valor verdadero (cierto). Uno de los dos valores enumerados del tipo bool. El literal
true(1) se representa por un valor distinto 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 caracterstica
mejora la legibilidad de un programa.
SINTAXIS
typedef tipo_existente nuevo_nombre;
typedef float real;
typedef struct {
float x, y;
{ punto;

Typename
Una declaracin class se puede anidar dentro de otra declaracin template class. Si, sin
embargo, se utiliza un nombre dentro de una declaracin template class que no se declare
explcitamente como un tipo o clase, se supone que el nombre no nombra un tipo a menos
que el nombre est modificado por la palabra reservada typename.
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
};

Union
Tipo de dato que se utiliza para asignar almacenamiento de diferentes elementos de datos
en la misma posicin. La declaracin de union es la misma que la de struct, con la
diferencia de que en una unin todos los elementos de datos de la declaracin comparten
la misma posicin de almacenamiento.
SINTAXIS
union <nombre_union>
{
<tipo> <nombre_miembro>
...
}
C++ dispone tambin de una unin annima, 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 variable se utilizar para almacenar slo
valores no negativos. Este calificador doble el mximo 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
Declaracin using y directiva using. Una declaracin using permite a un cliente tener
acceso a todos los nombres del espacio de nombres.
using namespace mcd;
using namespace LJAabc;
juegos primero;

Virtual
Especificador de una funcin que declara una funcin miembro de una clase que se
redefinir por una 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 declaracin y definicin de una funcin.
Se puede utilizar tambin void* para declarar un puntero a cualquier tipo de objeto dado.
SINTAXIS
void func(void);
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 declararn
volatile.

Wchar_t
Tipo carcter ancho (wide). Se utiliza para representar conjuntos de caracteres que
requerir ms de los 255 caracteres estndar. Est concebido para juegos de caracteres
que requieren caracteres no representables por char, tales como el alfabeto japons kana.

While
La sentencia while permite construir un bucle cuyas sentencias interiores se ejecutan hasta
que una condicin o expresin 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;

EJEMPLO #1.
#include <stdio.h>
#include <stdlib.h>
void menu(); // Men de opciones
float suma(float num1, float num2); // Funcin sumar dos nmeros
float resta(float num1, float num2); // Funcin restar dos nmeros
float multiplicar(float num1, float num2); // Funcin multiplicar dos nmeros
float dividir(float num1, float num2); // Funcin dividir dos nmeros
void main()
{
int opc;
float num1, num2;
char c;
do
{
menu();
scanf("%d",&opc);
switch(opc)
{
case 1:
printf("\nIntroduce primer nmero: ");
scanf("%f", &num1);
printf("\nIntroduce segundo nmero: ");
scanf("%f", &num2);
printf("La suma de %.2f y %.2f es: %.2f\n\n", num1, num2,
suma(num1, num2));
break;
case 2:
printf("\nIntroduce primer nmero: ");
canf("%f", &num1);
printf("\nIntroduce segundo numero: ");
scanf("%f", &num2);
printf("La resta de %.2f y %.2f es: %.2f\n\n", num1, num2,
resta(num1, num2));
break;
case 3:
printf("\nIntroduce primer nmero: ");
scanf("%f", &num1);
printf("\nIntroduce segundo nmero: ");
scanf("%f", &num2);
printf("La multiplicacion de %.2f y %.2f es: %.2f\n\n",
num1, num2, multiplicar(num1, num2));
break;
case 4:
printf("\nIntroduce primer nmero: ");
scanf("%f", &num1);
printf("\nIntroduce segundo nmero: ");
scanf("%f", &num2);
printf("La division entre %.2f y %.2f es: %.2f\n", num1,
num2, dividir(num1, num2));
break;
case 0: break;
default:
printf("\nIntroduce una opcin vlida...\n");
}
} while (opc != 0);
}
void menu()
{
printf ("\nIntroduce una opcin de las siguientes:\n\n");
printf ("1.- Sumar\n");
printf ("2.- Restar\n");
printf ("3.- Multiplicar\n");
printf ("4.- Dividir\n");
printf ("0.- Salir\n\n");
printf ("Opcin: ");
}
float suma(float num1, float num2) {
return num1+num2;
}
float resta(float num1, float num2)
{
return num1-num2;
}
float multiplicar(float num1, float num2)
{
return num1*num2;
}
float dividir(float num1, float num2)
{
return num1/num2;
}
DIFERENCIAS EN C++ Y VISUAL C++
La diferencia ms notable entre los dos es la capacidad de crear cdigo y relacionarlo
con los objetos de la ventana.
Simplemente, Visual C++ es un IDE creado por la empresa Microsoft, para los
lenguajes C, C++ y C++/CLI. Tiene herramientas para el desarrollo y depuracin de
cdigo para dichos lenguajes. Al ser de Microsoft, slo funciona en sistemas
operativos Windows.
Otra diferencia es que en Visual programas no slo sistemas para windows, sino para
cualquier plataforma que tenga el framework .NET, as como web services, DLLs,
AJAX, etc.
C++ es un lenguaje de programacin diseado a mediados de los aos 1980 por Bjarne
Stroustrup. Una particularidad del C++ es la posibilidad de redefinir los operadores, y de
poder crear nuevos tipos que se comporten como tipos fundamentales.

Visual C++ (tambin conocido como MSVC++, Microsoft Visual C++) es un entorno
de desarrollo integrado (IDE) para lenguajes de programacin C, C++ y C++/CLI. Visual
C++ engloba el desarrollo de aplicaciones hechas en C, C++ y C++/CLI en el
entorno Windows. Visual C++ incluye adems las bibliotecas de Windows (WinApi), las
bibliotecas MFC y el entorno de desarrollo para .NET Framework. Visual C++ cuenta
con su propio compilador (de igual nombre) y otras herramientas como IntelliSense,
TeamFoundation Server, Debug,... Adems provee de bibliotecas propias de cada versin
del sistema operativo y sockets. Como otros compiladores, se le pueden aadir nuevas
bibliotecas como DirectX, wxWidgets o SDL. Cuenta con una versin Express, llamada
Microsoft Visual C++ Express Edition, la cual es gratuita y se puede descargar desde el
sitio de Microsoft. El lenguaje de programacin utilizado por esta herramienta, de igual
nombre, est basado en C++ y es compatible en la mayor parte de su cdigo con
este lenguaje, a la vez que su sintaxis es exactamente igual. En algunas ocasiones esta
incompatibilidad impide que otros compiladores, sobre todo en otros sistemas operativos,
funcionen bien con cdigo desarrollado en este lenguaje. Una de las
nuevas implementaciones es que el llamado cdigo administrado (managed code) hace
uso de una de las mejores herramientas dentro de .NET, el recolector de basura (garbage
collector). Cmo declarar una clase gestionada por el recolector de basura Visual Studio
2005:

ref class MiClase


{
// Cdigo
}

En Visual Studio 2003:

__gc class MiClase


{
// Cdigo
}

La palabra reservada ref ( __gc) le dice al compilador que esa clase ser manejada por
el recolector de basura, aunque, y a diferencia de otros lenguajes de .NET como C#, an
puede seguir llamando al destructor con delete.
Ahora veamos un ejemplo del programa HolaMundo con Visual C++ en C++/CLI.

using namespace System;


ref class MiClase
{
public : void HolaMundo()
{
Console::WriteLine("Hola, mundo");
}
};
int main()
{
MiClase^ objeto = gcnew MiClase();
objeto->HolaMundo();
return 0;
}

Ahora veamos un ejemplo en ANSI C.

#include <stdio.h>

int main()
{
printf("Hola, mundo");
}

Y un ejemplo en C++

#include <iostream>

using namespace std;


int main()
{
cout<<"Hola, mundo"<<endl;
}

Las diferencias son pocas; en cuanto a sintaxis, el smbolo ^ indica que se est creando
un puntero. Se hace de esta forma porque los punteros nativos de C++ son difciles de
seguir por el recolector de basura, as que se debe manejar de manera diferente. Para
acceder a los mtodos y miembros de la clase se usa -> cuando se tiene un puntero, al
igual que en C++ nativo.
La palabra reservada gcnew crea el objeto devolviendo un puntero hacia este; gcnew se
debe de usar para instar una clase manejada por el recolector de basura, o sea que ha sido
declarada ref class. Si la clase no es manejada class se usa new y * para crear un puntero,
al igual que en C++.

SI LAS PALABRAS RESERVADAS EN C++ SON COMPATIBLES


EN VISUAL C++
El lenguaje c++ es la base para saber programacin. Sabiendo programar en este lenguaje
es mucho ms fcil hacerlo en Visual C++, Java, etc.
Las sentencias son las mismas pero es mucho ms fcil Visual C++ ya que los objetos
estn prediseados.
Las instrucciones, son las mismas, incluso las libreras. En realidad C++ es un
subconjunto de Visual C++, as que Visual C++ contiene las instrucciones y libreras de
C++.

Palabras Reservadas Visual C++. Son palabras claves que estn predefinidos por
identificadores reservados que tienen un significado especial para el compilador. Ellos no
se pueden utilizar como identificadores en su programa a menos que incluyan @ como
prefijo. Por ejemplo: @if es un identificador vlido, de lo contrario es una palabra clave.

abstract event new struct

as explicit null switch

base extern object this

bool false operator throw

break finally out true

byte fixed override try

case float params typeof

catch for private uint

char foreach protected ulong

checked goto public unchecked

class if readonly unsafe

const implicit ref ushort

continue in return using

decimal int sbyte virtual


default interface sealed volatile

delegate internal short void

do is sizeof while

double lock stackalloc

else long static

enum namespace string

Palabras Reservadas en C++


EJEMPLO #1 (con switch totalmente)
/*Este programa muestra el signo zodiacal de una persona. Para ello el usuario debe
introducir nicamente el da y el mes de nacimiento y el programa determinar
inmediatamente el signo zodiacal de la persona.*/
//muestra el signo zodiacal
#include <STdio.h>
#include <math.h>
#include <windows.h>
void clrscr()/*Creando funcion para limpiar pantalla.*/
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord = {0, 0};
DWORD count;
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(hStdOut, &csbi);
FillConsoleOutputCharacter(hStdOut, ' ', csbi.dwSize.X * csbi.dwSize.Y, coord,
&count);
SetConsoleCursorPosition(hStdOut, coord);
}
void main()
{
int salir,saliryesno;
salir=0;
while(salir==0)
{
clrscr();/*Llamando la funcion para limpiar pantalla.*/
short unsigned int m,d = 0;
printf("Introduzca su mes de nacimiento: ");
scanf("%d",&m,"\n");
while ((m > 12) || (m < 1))
{
printf("Introduzca su mes de nacimiento(DE 1 A 12): ");
scanf("%d",&m,"\n");
}
switch (m)
{
case 1:
{
printf("Introduzca su dia de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>31) || (d != (d)) )//!= esta sentencia es diferente
de
{
printf("Introduzca dia(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=20) ? printf("\nSu signo es
CAPRICORNIO.\n\n"):printf("\nSu signo es
ACUARIO.\n\n");
break;
}
case 2:
{
printf("Introduzca su dia de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>29) || (d != (d)) )
{
printf("Introduzca dia(ENTRE 1 Y 29): ");
scanf("%d",&d,"\n");
}
(d<=19) ? printf("\nSu signo es
ACUARIO.\n\n"):printf("\nSu signo es PISCIS.\n\n");
break;
}
case 3:
{
printf("Introduzca su dia de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>31) || (d != (d)) )
{
printf("Introduzca dia(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=20) ? printf("\nSu signo es PISCIS.\n\n"):printf("\nSu
signo es ARIES.\n\n");
break;
}
case 4:
{
printf("Introduzca su dia de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>30) || (d!=(d)) )
{
printf("Introduzca dia(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=20) ? printf("\nSu signo es ARIES.\n\n"):printf("\nSu
signo es TAURO.\n\n");
break;
}
case 5:
{
printf("Introduzca su dia de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>31) || (d != (d)) )
{
printf("Introduzca dia(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=21) ? printf("\nSu signo es TAURO.\n\n"):printf("\nSu
signo es GEMINIS.\n\n");
break;
}
case 6:
{
printf("Introduzca su dia de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>30) || (d!=(d)) )
{
printf("Introduzca dia(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=21) ? printf("\nSu signo es
GEMINIS.\n\n"):printf("\nSu signo es CANCER.\n\n");
break;
}
case 7:
{
printf("Introduzca su dia de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>31) || (d != (d)) )
{
printf("Introduzca dia(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=23) ? printf("\nSu signo es
CANCER.\n\n"):printf("\nSu signo es LEO.\n\n");
break;
}
case 8:
{
printf("Introduzca su dia de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>31) || (d != (d)) )
{
printf("Introduzca dia(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=23) ? printf("\nSu signo es LEO.\n\n"):printf("\nSu
signo es VIRGO.\n\n");
break;
}
case 9:
{
printf("Introduzca su dia de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>30) || (d!=(d)) )
{
printf("Introduzca dia(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=23) ? printf("\nSu signo es LEO.\n\n"):printf("\nSu
signo es LIBRA.\n\n");
break;
}
case 10:
{
printf("Introduzca su dia de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>31) || (d != (d)) )
{
printf("Introduzca dia(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=23) ? printf("\nSu signo es LIBRA.\n\n") : printf("\nSu
signo es ESCORPION.\n\n");
break;
}
case 11:
{
printf("Introduzca su dia de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>30) || (d!=(d)) )
{
printf("Introduzca dia(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=22) ? printf("\nSu signo es
ESCORPION.\n\n"):printf("\nSu signo es
SAGITARIO.\n\n");
break;
}
case 12:
{
printf("Introduzca su dia de nacimiento: ");
scanf("%d",&d,"\n");
while ( (d>31) || (d !=(d)) )
{
printf("Introduzca dia(ENTRE 1 Y 31): ");
scanf("%d",&d,"\n");
}
(d<=21) ? printf("\nSu signo es
SAGITARIO.\n\n"):printf("\nSu signo es
CAPRICORNIO.\n\n");
break;
}
}
printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO
PRESIONE OTRO NUMERO: ");
scanf("%d",&saliryesno);
switch(saliryesno)
{
case 1:
salir=1;
}
}
}

EJEMPLO #2 (con switch pero usando if en aquellas partes donde es imposible


utilizar switch)
/*El programa muestra primero una tabla de notas con sus equivalentes en el Standard
Grading System o el sistema utilizado en los Estados Unidos que va desde la A hasta la
F. El programa preguntar al usuario su nota y transformar ese resultado al equivalente
en el Standard Grading System. Tambin el programa dar una pequea pero valiosa
recomendacin al usuario respecto a su nivel de estudio y calidad como estudiante.*/
#include "stdio.h"
#include <windows.h>
void clrscr()/*Creando funcion para limpiar pantalla.*/
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord = {0, 0};
DWORD count;
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(hStdOut, &csbi);
FillConsoleOutputCharacter(hStdOut, ' ', csbi.dwSize.X * csbi.dwSize.Y, coord,
&count);
SetConsoleCursorPosition(hStdOut, coord);
}
void main()
{
int salir,saliryesno;
salir=0;
while(salir==0){
clrscr();/*Llamando la funcion para limpiar pantalla.*/
int a;
float nota;
printf("\n\t\t\tNOTAS\t\tEQUIVALENTE\n");
printf("\t\t 9.0 - 10.0\t\t A\n");
printf("\t\t 8.5 - 8.9\t\t B+\n");
printf("\t\t 8.0 - 8.4\t\t B\n");
printf("\t\t 7.5 - 7.9\t\t C+\n");
printf("\t\t 7.0 - 7.4\t\t C\n");
printf("\t\t 6.0 - 6.9\t\t D\n");
printf("\t\t 0.0 - 6.0\t\t F\n");
a=0;
while(a==0)
{
printf("\nIntroduzca su nota en Programacion II: ");
scanf("%f",&nota);
if(nota<0 || nota>10)
{
/*a sigue valiendo cero y no se sale del ciclo*/
}
else
{
a=1;
}
}
if(nota>=9)
{
printf("\nNOTA EQUIVALENTE EN STANDARD GRADING
SYSTEM: A\n");
printf("RECOMENDACIONES: Excelente, si continua asi usted
es un genio.\n\n");
}
Else
{
if(nota>=8.5)
{
printf("\nNOTA EQUIVALENTE EN STANDARD
GRADING SYSTEM: B+\n");
printf("RECOMENDACIONES: Muy bien, su nivel es
impresionante.\n\n");
}
Else
{
if(nota>=8)
{
printf("\nNOTA EQUIVALENTE EN
STANDARD GRADING SYSTEM: B\n");
printf("RECOMENDACIONES: Bien, su nivel es
muy bueno.\n\n");
}
else
{
if(nota>=7.5)
{
printf("\nNOTA EQUIVALENTE EN
STANDARD GRADING SYSTEM:
C+\n");
printf("RECOMENDACIONES: Usted esta
dentro del promedio, trate de no bajar.\n\n");
}
Else
{
if(nota>=7)
{
printf("\nNOTA EQUIVALENTE
EN STANDARD GRADING
SYSTEM: C\n");
printf("RECOMENDACIONES:
Usted la va pasando, pero trate elevar
su promedio.\n\n");
}
else
{
if(nota>=6)
{
printf("\nNOTA
EQUIVALENTE EN
STANDARD GRADING
SYSTEM: D\n");
printf("RECOMENDACION
ES: Usted esta en la cuerda
floja, un pequeno descuido
\nlo pone en
problemas.\n\n");
}
Else
{/*nota mayor que cero pero menor
que 6.*/
printf("\nNOTA
EQUIVALENTE EN
STANDARD GRADING
SYSTEM: F\n");
printf("RECOMENDACION
ES: Su nota sinceramente es
mala, busque nuevas
\ntecnicas de estudio.\n\n");
}
}
}
}
}
}
printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO
PRESIONE OTRO NUMERO: ");
scanf("%d",&saliryesno);
switch(saliryesno)
{
case 1:
salir=1;
}
}
}
Linkografa
http://www.programacionfacil.com/visual_cpp/palabras_reservadas.html
https://jaimesotou.files.wordpress.com/2012/01/lenguajec-referencia-2.pdf
https://www.mhe.es/universidad/informatica/8448198441/archivos/apendice_ge
neral_3.pdf

Das könnte Ihnen auch gefallen