Académique Documents
Professionnel Documents
Culture Documents
www.detodoprogramacion.com
www.detodoprogramacion.com
http://alexyniorlls.blogspot.com 3 of 64.
www.detodoprogramacion.com
http://alexyniorlls.blogspot.com 4 of 64.
www.detodoprogramacion.com
http://alexyniorlls.blogspot.com 5 of 64.
www.detodoprogramacion.com
http://alexyniorlls.blogspot.com 6 of 64.
www.detodoprogramacion.com
Tipos de Variables:
Bool -->Verdadero o Falso
unsigned short int -->0 a 65,535
short int -->-32,768 a 32,767
unsigned long int -->0 a 4,294,967,295
long int -->-2,147,483,648 a 2,147,483,647
int -->-32,768 a 32,767
unsigned int -->0 a 65,535
char -->256 caracteres
float -->1.2e-38 a 3.4e38
double -->2.2e-308 a 1.8e308
http://alexyniorlls.blogspot.com 7 of 64.
www.detodoprogramacion.com
int alumnos;
total=clases*alumnos;
//cout<<El total es: <<total;
getch();
}
http://alexyniorlls.blogspot.com 8 of 64.
www.detodoprogramacion.com
Otro ejemplo:
#include<iostream.h>
#include<conio.h>
int main()
{
unsigned short int Ancho=5,Largo;
Largo=10;
unsigned short int Area=(Ancho*Largo);
cout<<"Ancho:"<<Ancho<<"\n";
cout<<"Largo:"<<Largo<<"\n";
cout<<"Area:"<<Area<<"\n";
getch();
}
Usando typedef:
typedef, es un comando que te permite crear un alias para la declaracin de
funciones, esto es, que puedes crear un alias para unsigned short int y
evitar tener que escribirlo cada vez que lo necesites.
#include<iostream.h>
#include<conio.h>
typedef unsigned short int USHORT;
int main()
{
USHORT Ancho=5;
USHORT Largo=2;
USHORT Area=Ancho*Largo;
cout<<"Area: "<<Area<<endl; //endl, cumple la funcin de "\n"
getch();
}
http://alexyniorlls.blogspot.com 9 of 64.
www.detodoprogramacion.com
Caracteres especiales:
* "\n" --> Nueva Lnea
* "\t" --> Tab o espacio
* "\b" --> Backspace o retroceder una lnea
* "\"" --> Comilla doble
* "\'" --> Comilla simple
* "\?" --> Signo de interrogacin
* "\\" --> backslash
Constantes:
Al igual que las variables, las constantes guardan informacin, pero a
diferencia de ellas, esta informacin no puede ser modificada.
Constantes Literales:
Una constante literal, es un valor ingresado directamente en tu programa,
en cualquier lugar que lo necesite.
int miEdad=23;
miEdad es una variable de tipo int (Entero); 39 es una constante literal. No
puedes asignar un valor a 39 y su valor no puede cambiarse
Constantes Simblicas:
Una variable simblica, es una variable que est representada por un
nombre, tal como una variable est representada. A diferencia de una
variable, sin embargo, su valor no puede ser modificado.
Estudiantes = clases * estudiantesporclase;
clases y estudiantesporclase son variables simblicas. En cada lugar que el
programa lea estudiantes, asignar el valor de clases*estudiantesporclase.
http://alexyniorlls.blogspot.com 10 of 64.
www.detodoprogramacion.com
Constantes Enumeradas:
Las constantes enumeradas, te permiten crear nuevos tipos y luego definir
dichas variables con valores que estn restringidos a un grupo de posibles
variables.
enum COLOR {ROJO,AZUL,VERDE,BLANCO,NEGRO};
COLOR es el nombre de la enumeracin, en otras palabras, un nuevo tipo.
ROJO es una variable simblica con el valor "0", AZUL="1", etc.
Se
pueden
inicializar
con
el
valor
que
uno
elija.
{ROJO=100,AZUL,VERDE=500};
Ejemplo:
#include<iostream.h>
#include<conio.h>
int main()
{
enum Dias {Domingo,Lunes,Martes,Miercoles,Jueves,Viernes,Sabado};
int opcion;
cout<<"Ingresa un da (0-6): ";
cin>>opcion;
if(opcion==Domingo || opcion==Sabado)
cout<<"Ya ests en el fin de semana";
else cout<<"\nTodava sigues en clases";
getch();
}
http://alexyniorlls.blogspot.com 11 of 64.
www.detodoprogramacion.com
Expresiones:
Una expresion debe devolver un valor, por lo tanto 3+2 devuelve el valor 5.
Todas las expresiones son sequencias.
3.2 //Devuelve el valor 3.2
PI //Devuelve el valor 3.14
SegundosPorMinuto //Constante entera que devuelve el valor 60
Operadores:
Un operador es un smbolo que obliga al compilador a tomar una accin.
http://alexyniorlls.blogspot.com 12 of 64.
www.detodoprogramacion.com
Operador de Asignacin:
El operador de asignacin provoca que la variable izquierda tome el o los
valores de las variables derechas.
x = a + b;
z = 10 - x;
Operadores Aritmticos:
Existen cinco operadores matemticos: suma(+),resta(-),multiplicacin(*),
divisin(/) y mdulo(%).
x = 5 + 5; //10
y = 10 8; //2
z = 6 * 4; //24
Divisin Entera y Mdulo:
La divisin entera, toma solamente la parte entera de la divisin. La divisin
de mdulo, toma solamente el residuo de la divisin.
x = 10 / 5;
//2
y = 10 % 5; //0
z = 6 % 4 ; //2
Incremento y Decremento:
El operador incremento (++) eleva el nmero en un dgito. El operador
decremento (--) lo decrementa en un dgito.
c++;
c = c + 1;
//Son equivalentes
http://alexyniorlls.blogspot.com 13 of 64.
www.detodoprogramacion.com
Prefix y Postfix:
El prefix se escribe antes del nombre de la variable, e incrementa el valor y
luego lo asigna. El postfix se escribe despus de la variable, y asigna el valor
y luego lo incrementa.
int a = ++x; //Prefix
int b = x++; //Postfix
Otro ejemplo:
#include <iostream.h>
#include <conio.h>
int main()
{
int miEdad = 23;
int tuEdad = 23;
cout<<"Yo tengo: "<<miEdad<<" aos de edad.\n";
cout<<"Tu tienes: "<<tuEdad<<" aos de edad.\n";
miEdad++;
++tuEdad;
cout<<"Un ao pas...\n";
cout<<"Yo tengo: "<<miEdad<<" aos de edad.\n";
cout<<"Tu tienes: "<<tuEdad<<" aos de edad.\n";
cout<<"Un ao pas...\n";
cout<<"Yo tengo: "<<miEdad++<<" aos de edad.\n";
cout<<"Tu tienes: "<<++tuEdad<<" aos de edad.\n";
cout<<"Escribamoslo de nuevo.\n"; cout<<"Yo tengo: "<<miEdad<<" aos de
edad.\n";
cout<<"Tu tienes: "<<tuEdad<<" aos de edad.\n";
getch();
}
http://alexyniorlls.blogspot.com 14 of 64.
www.detodoprogramacion.com
Operadores Relacionales:
Son usados para determinar cunado dos nmeros son iguales o si uno es
mayor que el otro:
Igualdad
==
100==50
falso
Desigualdad
!=
100!=50
verdadero
Mayor que
>
100>50
verdadero
100>=50
verdadero
Menor que
100<50
falso
100<=50
falso
<
El operador IF:
Este operador examina una condicin dada y ejecuta una accin
determinada:
#include <iostream.h>
#include <conio.h>
int main()
{
int miNum=5,tuNum;
cout<<"Ingresa un nmero:";
cin>>tuNum;
if(tuNum>miNum)
cout<<"\nGanaste, tu nmero es mayor que el mio";
getch();
}
http://alexyniorlls.blogspot.com 15 of 64.
www.detodoprogramacion.com
El operador ELSE:
Este operador es utilizado junto con IF, si la condicin no se cumple se
ejecuta otra accin:
#include <iostream.h>
#include <conio.h>
int main()
{
int miNum=5,tuNum;
cout<<"Ingresa un nmero:";
cin>>tuNum;
if(tuNum>miNum)
cout<<"\nGanaste, tu nmero es mayor que el mio";
else
cout<<"Gan!, Mi nmero es mayor que el tuyo";
getch();
}
http://alexyniorlls.blogspot.com 16 of 64.
www.detodoprogramacion.com
if(tuNum>miNum){
cout<<"\nGanaste, tu nmero es mayor que el mio\n";
cout<<"Que te parece si empezamos otra vez";
}
else{
if(tuNum<1)
cout<<"El cero y los nmeros negativos no juegan!";
else
cout<<"Gan!, Mi nmero es mayor que el tuyo";
}
getch();
}
Operadores Lgicos:
Los operadores lgicos son usados para concatenar operadores relacionales:
AND
&&
OR
||(alt+124)
expresin1 || expresin2
NOT
!expresin1
AND:
Slo
es
verdadero
cuando
ambas
expresiones
son
verdaderas:
es
verdadera,
la
vuelve
falsa
if(5!=5) if(!(x==5))
http://alexyniorlls.blogspot.com 17 of 64.
www.detodoprogramacion.com
viceversa
El operador condicional(Ternario):
Es un IF-ELSE automtico:
(expresin1)?(expresin2):(expresin3)
Si la expresin1 es verdadera, devuelve el valor de la expresin2, si es falsa,
devuelve el valor de la expresin3.
#include <iostream.h>
#include <conio.h>
int main()
{
int x,y,z;
cout<<"Ingresa dos nmeros.\n";
cout<<"Primero: ";
cin>>x;
cout<<"Segundo: ";
cin>>y;
if(x>y)
z=x;
else
z=y;
cout<<"z: "<<z;
z=(x>y)?x:y; //Operador Ternario
cout<<"z: "<<z;
getch();
}
http://alexyniorlls.blogspot.com 18 of 64.
www.detodoprogramacion.com
Captulo 5 -
Funciones
Qu es una funcin?
Una funcin es un subprograma que puede interactuar con los datos y
devolver
un
valor
(solamente
un
valor).
Las funciones pueden devolver un valor (int,long,float) o no devolver nada
(void), adems pueden recibir parmetros con los cules interactuar (int,
char,long) o no recibir ninguno.
unsigned short int EncontrarArea(int largo, int ancho);
----------------- ------------ -------------------Tipo que retorna
Nombre
http://alexyniorlls.blogspot.com 19 of 64.
www.detodoprogramacion.com
http://alexyniorlls.blogspot.com 20 of 64.
www.detodoprogramacion.com
int main()
{
clrscr();
int edad,nedad; //Variable Local
cout<<"Cual es tu altura?";
cin>>altura;
cout<<"Cual es tu peso?";
cin>>peso;
cout<<"Cual es tu edad?";
cin>>edad;
nedad=Edad(edad);
cout<<"Tu altura es "<<altura;
cout<<" Tu peso es "<<peso;
cout<<" y tu edad es "<<nedad;
getch();
}
http://alexyniorlls.blogspot.com 21 of 64.
www.detodoprogramacion.com
Captulo 6 - Clases
Qu es una clase?
Una clase es una declaracion que sirve como un contenedor para nuevas
variables
creadas
por
nosotros
mismos.
Las clases pueden representar situaciones o elementos de la vida real, lo
cual nos ayuda a elaborar mejores programas y que son por ende ms fciles
de mantener y actualizar. Cada elemento que forma la clase, es llamado
Objeto.
Definir un objeto
Los objetos se declaran de la misma manera en que se declararia una
variable normal.
Estudiante Alvaro; //Variable Alvaro de tipo Estudiante.
http://alexyniorlls.blogspot.com 22 of 64.
www.detodoprogramacion.com
#include <iostream.h>
#include <conio.h>
class Estudiante
{
public:
unsigned int codigo;
unsigned int edad;
void Comentarios();
};
int main()
{
Estudiante Alvaro;
Alvaro.edad = 24;
cout<<"El estudiante Alvaro, tiene "<<Alvaro.edad<<" aos";
getch();
}
http://alexyniorlls.blogspot.com 23 of 64.
www.detodoprogramacion.com
http://alexyniorlls.blogspot.com 24 of 64.
www.detodoprogramacion.com
Constructores y Destructores
Para inicializar algn miembro de alguna clase, se utiliza un constructor, los
constructores pueden recibir parmetros, pero no pueden retornar ningn
valor, ni siquiera Void. Este constructor, debe tener el mismo nombre que la
clase.
Luego de haber declarado el constructor, debes declarar un destructor,
para que libere la memoria utilizada. los destructores siempre tienen el
nombre de la clase antepuestos por el smbolo ~ (alt+126), los destructores,
no reciben argumentos, y tampoco retornan un valor.
http://alexyniorlls.blogspot.com 25 of 64.
www.detodoprogramacion.com
#include <iostream.h>
#include <conio.h>
class Estudiante
{
public:
Estudiante(int Codigo);
~Estudiante();
unsigned int gCod();
unsigned int sCod(int cod);
void Comentarios();
private:
unsigned int vCod;
};
//Constructor
Estudiante::Estudiante(int Codigo)
{
vCod = Codigo;
}
//Destructor
Estudiante::~Estudiante()
{
}
unsigned int Estudiante::gCod()
{
return vCod;
}
http://alexyniorlls.blogspot.com 26 of 64.
www.detodoprogramacion.com
Estructuras
En realidad, las estructuras y las clases cumplen la misma funcin, por lo
cual, pueden reemplazarse los comandos "class" por "struct". La diferencia
basica es que en las Estructuras, los miembros son pblicos por default.
Este es solo un accidente histrico, en el paso de C a C++.
http://alexyniorlls.blogspot.com 27 of 64.
www.detodoprogramacion.com
While o Mientras
While o Mientras(En pseudo-cdigo), permite ejecutar una instruccin o un
conjunto de instrucciones mientras la condicin dada sea verdadera.
#include <iostream.h>
#include <conio.h>
int main()
{
int counter=0;
while(counter<5)
{
counter++; //Aumenta a counter en uno.
cout<<"Hola\n";
}
getch();
}
http://alexyniorlls.blogspot.com 28 of 64.
www.detodoprogramacion.com
#include <iostream.h>
#include <conio.h>
int main()
{
clrscr(); //Para borrar la pantalla.
int num;
cout<<"Ingresa un nmero del 1 al 10: ";
cin>>num;
while(num>0 && num<11) //Mientras num sea mayor a 0 y menor que 11
{
cout<<"\nTu nmero es num: "<<num;
num++;
}
getch();
}
Do...While o Hacer...Mientras
Do...While o Hacer...Mientras(En psudo-cdigo). Aunque es similar al While,
el Do...While, tiene la ventaja de que ejecuta las instrucciones antes de
verificar si la condicin se cumple, por lo cual, siempre se ejecutar por lo
menos una vez.
#include <iostream.h>
#include <conio.h>
int main()
{
clrscr(); //Para borrar la pantalla.
int num;
cout<<"Ingresa un nmero del 1 al 10: ";
cin>>num;
http://alexyniorlls.blogspot.com 29 of 64.
www.detodoprogramacion.com
For o Para
El For o Para(En psudo-cdigo), se utiliza para asignar un valor, verificar una
condicin y aumentar la variable, todo en una sola lnea.
#include <iostream.h>
#include <conio.h>
int main()
{
clrscr(); //Para borrar la pantalla.
int num;
for(num=0;num<6;num++)
cout<<"\nEl nmero es: "<<num;
getch();
}
Switch o Casos
El Switch o Casos(En pseudo-cdigo), permite escoger entre una amplia
gama de posibilidades, sin tener que ejecutar millones de lneas de if, else,
etc.
Es muy til a la hora de generar menues, que piden al usuario, escoger una
opcin.
#include <iostream.h>
#include <conio.h>
http://alexyniorlls.blogspot.com 30 of 64.
www.detodoprogramacion.com
int main()
{
clrscr();
int opcion;
do
{
cout<<"1)\n";
cout<<"2)\n";
cout<<"3)\n";
cout<<"Escoja una opcin: ";
cin>>opcion;
}while(opcion<0 || opcion>4); //si opcion es menor que 0 mayor que 4
switch(opcion) //Verifica el valor de opcion
{
case 1: //Si es uno
cout<<"Eligio la opcin 1";
break;
http://alexyniorlls.blogspot.com 31 of 64.
www.detodoprogramacion.com
Captulo 7 - Punteros
Qu son los punteros?
Un puntero es una variable que guarda una direccin de memoria.
En realidad este no es un punto que domino, porque en realidad es bastante
complicado sobre todo para los principiantes en programacin, de todos
modos, tratar de explicarlos de la mejor manera posible.
http://alexyniorlls.blogspot.com 32 of 64.
www.detodoprogramacion.com
http://alexyniorlls.blogspot.com 33 of 64.
www.detodoprogramacion.com
Ejemplo
#include <iostream.h>
#include <conio.h>
int main()
{
int lVal = 8;
int * pLocal = &lVal;
int * pStore = new int;
*pStore = 5;
cout<<"lVal: "<<lVal<<"\n";
cout<<"*pLocal: "<<*pLocal<<"\n";
cout<<"*pStore: "<<*pStore<<"\n";
delete pStore;
pStore = new int;
*pStore = 3;
cout<<"*pStore: "<<*pStore<<"\n";
delete pStore;
getch();
}
http://alexyniorlls.blogspot.com 34 of 64.
www.detodoprogramacion.com
#include <iostream.h>
#include <conio.h>
class Estudiante
{
public:
Estudiante();
~Estudiante();
private:
int vCod;
};
Estudiante::Estudiante()
{
cout<<"LLamando al constructor.\n";
vCod = 108;
}
Estudiante::~Estudiante()
{
cout<<"LLamando al destructor.\n";
}
int main()
{
cout<<"Estudiante Alvaro...\n";
Estudiante Alvaro;
cout<<"Estudiante *pSid = new Estudiante...\n";
Estudiante *pSid = new Estudiante;
cout<<"delete pSid...\n";
delete pSid;
cout<<"Terminando la demostracin...\n";
getch();
}
http://alexyniorlls.blogspot.com 35 of 64.
www.detodoprogramacion.com
->.
#include <iostream.h>
#include <conio.h>
class Estudiante
{
public:
Estudiante() {vCode = 108;} //Declaracin con funcin en lnea.
~Estudiante() {}
unsigned int gCode() const {return vCode;} //Al ser constante, no se
//puede modificar
void sCode(unsigned int cod) {vCode = cod;}
private:
unsigned int vCode;
};
int main()
{
Estudiante * pAlvaro = new Estudiante;
cout<<"El cdigo de Alvaro es: "<<pAlvaro->gCode();
pAlvaro->sCode(205);
cout<<"El nuevo cdigo de Alvaro es: "<<pAlvaro->gCode();
delete pAlvaro;
getch();
}
http://alexyniorlls.blogspot.com 36 of 64.
www.detodoprogramacion.com
#include <iostream.h>
#include <conio.h>
class Estudiante
{
public:
Estudiante();
~Estudiante();
unsigned int gCode() const {return *vCode;}
void sCode(unsigned int cod) {*vCode = cod;}
private:
unsigned int *vCode;
};
Estudiante::Estudiante()
{
vCode = new unsigned int(108);
}
Estudiante::~Estudiante()
{
delete vCode;
}
int main()
{
Estudiante * Alvaro = new Estudiante;
cout<<"El cdigo de Alvaro es: "<<Alvaro->gCode();
Alvaro->sCode(205);
cout<<"El nuevo cdigo de Alvaro es: "<<Alvaro->gCode();
delete Alvaro;
getch();
}
http://alexyniorlls.blogspot.com 37 of 64.
www.detodoprogramacion.com
Captulo 8 - Referencias
Qu son las referencias?
Las referencias son alias que se le pueden dar una variable, es como un
sobrenombre y todo lo que se le haga al alias le ocurrir a la variable y
viceversa. Se reconocen porque al comenzar el nombre de la variable, se les
antepone el simbolo &.
referenciar Objetos
Al igual que las variables se pueden referenciar, los objetos de una clase
tambin.
http://alexyniorlls.blogspot.com 38 of 64.
www.detodoprogramacion.com
#include <<iostream.h>
#include <<conio.h>
class Estudiante
{
public:
Estudiante(int code,int edad);
~Estudiante() {}
int gCode() {return vCode;}
int gEdad() {return vEdad;}
private:
int vCode;
int vEdad;
};
Estudiante::Estudiante(int code,int edad)
{
vCode = code;
vEdad = edad;
}
int main()
{
Estudiante Alvaro(108,24);
Estudiante & rAlv = Alvaro;
cout<<"El cdigo de Alvaro es: "<<Alvaro.gCode();
cout<<"\ny su edad es: "<<rAlv.gEdad();
getch();
}
http://alexyniorlls.blogspot.com 39 of 64.
www.detodoprogramacion.com
http://alexyniorlls.blogspot.com 40 of 64.
www.detodoprogramacion.com
http://alexyniorlls.blogspot.com 41 of 64.
www.detodoprogramacion.com
Captulo 9 - Herencia
Qu es la Herencia?
La herencia puede describirse como un concepto de la vida real, por
ejemplo, de los de los animales, podemos sacar a los mamiferos, de los
mamiferos a los gatos, y de los gatos a los gatos salvajes de las estepas
norafricanas y de estos ltimos a mi gato "Cheko". Podemos decir que
"Cheko" desciende de toda esta lnea de clasificaciones y por lo tanto debe
tener tambin sus caracteristicas, tanto de los gatos como de los
mamiferos. En las Herencias, las clases, heredan atributos y funciones de
otras clases que son superiores a ellas.
Ejemplo de Herencia
#include <iostream.h>
#include <conio.h>
class Mamiferos
{
public:
//Constructores
Mamiferos():vEdad(2),vPeso(4){}
~Mamiferos(){}
int gEdad() const {return vEdad;}
void sEdad(int Edad) {vEdad = Edad;}
int gPeso() const {return vPeso;}
void sPeso(int Peso) {vPeso = Peso;}
void Hablar() const {cout<<"Mamifero hablando\n";}
protected:
int vEdad;
int vPeso;
};
http://alexyniorlls.blogspot.com 42 of 64.
www.detodoprogramacion.com
Mtodos Virtuales
Los mtodos virtuales, sirven para poder tener metodos con nombre iguales,
tanto en la clase madre como en la clases derivada, sin que estos entren en
conflicto, el compilador sabe a cual llamar dependiendo del contexto,
tambin permiten la utilizacin de punteros, que declaren una clase derivada
como nueva instancia de la clase madre.
http://alexyniorlls.blogspot.com 43 of 64.
www.detodoprogramacion.com
#include <iostream.h>
#include <conio.h>
class Mamiferos
{
public:
Mamiferos():vEdad(2) {cout<<"Constructor Mamiferos...\n";}
virtual ~Mamiferos() {cout<<"Destructor Mamiferos...\n";}
void Mover() const {cout<<"Mamiferos avanzan un paso\n";}
virtual void Hablar() const {cout<<"Mamiferos hablando\n";}
protected:
int vEdad;
};
class Gato:public Mamiferos
{
public:
Gato() {cout<<"Constructor Gato...\n";}
~Gato() {cout<<"Destructor Gato...\n";}
void Hablar() const {cout<<"Miau!\n";}
void Mover() const {cout<<"Gato avanza 3 pasos\n";}
};
int main()
{
Mamiferos *pGato = new Gato;
pGato->Mover();
pGato->Hablar();
getch();
}
as, tampoco
http://alexyniorlls.blogspot.com 44 of 64.
www.detodoprogramacion.com
http://alexyniorlls.blogspot.com 45 of 64.
www.detodoprogramacion.com
http://alexyniorlls.blogspot.com 46 of 64.
www.detodoprogramacion.com
for(i=0;i<5;i++)
{
cout<<"\nGatito# "<<i+1<<" tiene: "<<Gatitos[i].gEdad()<<" aos";
}
getch();
}
int Chess[8][8];
#include <iostream.h>
#include <conio.h>
int main()
{
int Array[2][2];
int i,j;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
cout<<"Ingresa valores a la matriz: ";
cin>>Array[i][j];
}
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
cout<<"Los valores son["<<i<<"]"<<"["<<j<<"]:"
<<Array[i][j]<<"\n";
}
getch();}
http://alexyniorlls.blogspot.com 47 of 64.
www.detodoprogramacion.com
http://alexyniorlls.blogspot.com 48 of 64.
www.detodoprogramacion.com
for(i=0;i<20;i++)
{
cout<<"Cheko# "<<i+1<<": "<<pCheko->gEdad();
}
getch();
}
http://alexyniorlls.blogspot.com 49 of 64.
www.detodoprogramacion.com
Captulo 11 - Polimorfismo
Qu es el Polimorfismo?
Cuando hablamos de herencia, dijimos, que podiamos tomar una clase y
derivar otra de ella, haciendo que la clase derivada tomara las funciones y
atributos de la clase base o primaria. Pues bien, que pasa si tenemos dos
clases primaria y queremos que nuestra nueva clase derivada, derive de
ambas, es decir, herede los atributos y los mtodos de las clases de las
cuales deriv. Por ejemplo, podemos tener la clase Caballo y la clase Ave, el
primero galopa y el segundo vuela, pero supongamos que queremos crear una
clase que derive de los dos, por ejemplo, un Pegaso, que puede cabalgar y
volar, en Herencia, esto no sera posible, y de serlo, nos obligara a crear
varias instancias del mismo mtodo, como en el caso de Volar(), que tendra
que estar tanto en Ave como en Pegaso, o tan solo podra hacer una de las
dos cosas, pues bien, con el Polimorfismo, podemos manejar que esas dos
clases bases se fusiones para la clase derivada que vamos a crear.
#include <iostream.h>
#include <conio.h>
class Caballo
{
public:
Caballo() {}
~Caballo() {}
virtual void Galopar() const {cout<<"El caballo galopa 2 pasos";}
};
class Ave
{
public:
Ave() {}
virtual ~Ave() {}
virtual void Volar() const {cout<<"El Ave Vuela 2 metros...";}
};
http://alexyniorlls.blogspot.com 50 of 64.
www.detodoprogramacion.com
http://alexyniorlls.blogspot.com 51 of 64.
www.detodoprogramacion.com
else if(choice==3)
{
Pegaso * Pegasus = new Pegaso;
Pegasus->Galopar();
cout<<"\n";
Pegasus->Volar();
}
getch();
}
Conclusin
Como podemos ver, Pegaso hereda tanto de Caballo como de Ave, y por lo
tanto puede galopar y volar. Una prueba interesante para comprobar esto,
puede ser comentar los dos mtodos de Pegaso, con lo cual se ve de manera
ms clara que hereda ambos mtodos.
comiendo utilizar Referencias, pero si cumple alguna de las dos limitaciones
es necesario utilizar punteros.
http://alexyniorlls.blogspot.com 52 of 64.
www.detodoprogramacion.com
www.detodoprogramacion.com
http://alexyniorlls.blogspot.com 54 of 64.
www.detodoprogramacion.com
http://alexyniorlls.blogspot.com 55 of 64.
www.detodoprogramacion.com
http://alexyniorlls.blogspot.com 56 of 64.
www.detodoprogramacion.com
Miembros de Cout
width() y fill()
El objetivo de width(), es dejar espacio, de acuerdo al valor que le
entregemos, algo as como varios "\t". Funciona en relacin con fill().
El objetivo de fill(), es rellenar espacios vacios con algn caracter que
determinemos.
#include <iostream.h>
#include <conio.h>
int main()
{
cout<<"Ejemplo: ";
cout.width(15);
cout.fill($);
cout<<""; //de width() y fill();
getch();
}
Flags
setf()
El comando setf(), se utiliza para poner flags o caracteriscticas al texto que
va a escribirse. Ya sea oct, hex, setfill(), etc.
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
int main()
{
const int num = 138;
cout<<"El nmero es: "<<num;
http://alexyniorlls.blogspot.com 57 of 64.
www.detodoprogramacion.com
Lista de Modificadores
No necesitan iomanip.h
Lista de Modificadores
Necesitan iomanip.h
http://alexyniorlls.blogspot.com 58 of 64.
www.detodoprogramacion.com
www.detodoprogramacion.com
cin>>salario;
cout<<"\nDias que trabajo: ";
cin>>dias;
cout<<"\nSueldo Neto: ";
cin>>sueldoneto;
//"c:\\trabajad.txt" es la ubicacion y nombre del archivo
//como se crea cuando se ejecuta el programa por primera
//vez, se le puede dar una ruta distinta y el nombre debe
//ser de maximo, ocho caracteres.
ofstream fout("c:\\trabajad.txt",ios::app); //Abre el archivo para escritura
//el ios:app, hace que cada nuevo dato se agrage al final del archivo
fout<<"\nRelacion de Trabajadores "; //Escribe en el archivo
fout<<"\nNombre: "<<nombre<<"\nSueldo: "<<sueldo<<"\nSalario: ";
fout<<salario<<"\nDias que trabajo: "<<dias<<"\nSueldo Neto:;
fout<<sueldoneto<<"\n---------------";
fout.close(); //Cierra el archivo
clrscr(); //Vuelve a limpiar la pantalla
}
void ImprimirN()
{
int num;
ifstream fin("c:\\trabajad.txt"); //Abre el archivo para lectura
char ch;
while(fin.get(ch)) //Mientras hayan datos, leelos
cout<<ch; //e imprimelos
ofstream fix("c:\\trabajad.txt"); //Escribe los datos en el archivo
fix<<ch; //para evitar su repeticion
fin.close(); //Cierra el archivo
}
http://alexyniorlls.blogspot.com 60 of 64.
www.detodoprogramacion.com
Comportamiento de Ofstream
Pueden utilizarse ios para modificar el comportamiento del oftream.
http://alexyniorlls.blogspot.com 61 of 64.
www.detodoprogramacion.com
Comentarios Finales
Espero que este tutorial les sea til como una pequea introduccin al
lenguaje de programacin C++. Obviamente, queda mucho camino por
recorrer, uno no puede abarcar todas las posibilidades que posee un
lenguaje, en un tutorial, ni en diez libros. Lo importante ahora, es que
busque otros tutoriales con los que pudean complementarse y bajen cdigos
y lo revisen hasta comprenderlos a la perfeccin. Dems est decir que
cuentan
conmigo
para
cualquier
duda
que
tengan.
Pueden acceder a mi pgina web:
SinglePath games design
Escribirme un mail:
singlepathpe@yahoo.es
O ingresar a:
Xpertia (http://www.xpertia.com)
Nombre de experto: blag
y consultarme a mi o a los ms de 65 expertos disponibles en el rea de
"Programacin".
http://alexyniorlls.blogspot.com 62 of 64.
www.detodoprogramacion.com
Bibliografa y Agradecimientos
Bibliografa:
Agradecimientos:
www.detodoprogramacion..com
http://alexyniorlls.blogspot.com 63 of 64.
www.detodoprogramacion.com
15.- El Fn
http://alexyniorlls.blogspot.com 64 of 64.
www.detodoprogramacion.com