El Arte de Programar C++ (Español)

download El Arte de Programar C++ (Español)

of 64

Transcript of El Arte de Programar C++ (Español)

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    1/64

    Versin 2.0

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    2/64

    Acerca del Autor

    Captulo 1 Introduccin a C++

    Captulo 2 Las partes de un programa de C++

    Captulo 3 Variables y Constantes

    Captulo 4 Expresiones y Secuencias

    Captulo 5 Funciones

    Captulo 6 ClasesCaptulo 7 Secuencias de control

    Captulo 8 Punteros

    Captulo 9 Referencias

    Captulo 10 Herencias

    Captulo 11 Arreglos o Matrices

    Captulo 12 Polimorfismo

    Captulo 13 Clases especiales y Funciones

    Captulo 14 Cadenas de caracteres

    Captulo 15 Comentarios Finales

    Captulo 16 Bibliografa y Agradecimientos

    Captulo 17 El Fin

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    3/64

    Acerca del AutorMi Nombre es Alvaro Tejada, soy de Lima, Per, tengo 25 aos

    y junto con mi novia Milly, estudio Computacin e Informticaen Cibertec, y curso el Quinto Ciclo. Soy experto de lacategora de programacin en Xpertia, bajo el pseudnimo de

    Blag. Y dueo de mi propia "compaa" (Ficticia por el momento)desarrolladora de software multimedia, SinglePath games design.Mis inicios en la programacin datan aproximadamente del ao 1991, cuandoviva en el DF, en Mxico. All lleve un curso de introduccin al Pascal,aunque claro, en esos tiempos a pesar de que me llamaban la atencin lascomputadoras, no tena claro que quera hacer. Fue recin cuando vi porprimera vez el juego Mortal Kombat de Midway que decid que quera serprogramador. En ese entonces tena, si no me equivoco, una Macintosh Plus

    con Think Pascal. Para ser sinceros, no entenda nada y el nico programaque logr hacer fue uno que vena como ejemplo en el manual de usuario yque nunca pude modificar. Luego el tiempo pas y en el ao 1997 ingres a laUniversidad de Lima en la cual llev el curso de "Tcnicas de ProgramacinI", en el cual tuve mi primer contacto con C++, aunque an no con losresultados que yo esperaba (Siempre la programacin es difcil al principio).Fue a principios de 1998, en febrero ms o menos, que mi pap me comprun libro de Visual Basic "Visual Basic 6 Bible" y uno de C++ "Teach YourselfC++ in 21 Days". Y as comenc mi carrera en el mundo de la programacin.No voy a negar que al principio me cost bastante y que mis primeros

    programas eran bastantes simples, pero senta la satisfaccin de haberloshecho yo mismo.

    El tiempo pasaba y me retir de la Universidad de Lima, para ingresar aCibertec, en donde conoc por primera vez lo que era el lenguaje "Java". Yauna vez que mis conocimientos de programacin haban aumentado, y misprogramas y juegos mejorado, decid explorar otros lenguajes deprogramacin, como Visual C++, Euphoria, Visual FoxPro, QBasic,SQLServer, VBA, JavaScript, HTML, dBase III plus y Pascal.Actualmente, trabajo como Consultor SAP. Hasta ahora he desarrollado

    cerca de 32 programas y 10 juegos en distintos lenguajes, los cuales puedendescargarse gratuitamente de SinglePath games design.

    La idea de escribir un libro de programacin la tuve porque comoprogramador autodidacta, he ledo muchsimos libros y tutoriales, y pensque tal vez poda dar una pequea contribucin, espero que les guste yescrbanme si tienen alguna duda, queja o comentario.

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    4/64

    Captulo 1 - Introduccin a C++

    El lenguaje de programacin C++ es uno de los lenguajes llamados de altonivel, porque una sola de sus instrucciones equivale a millares de cdigo demquina.C++ es un lenguaje de programacin creado por Bjarne Stroustrup, hecho enbase al famoso y comercial lenguaje C. Cuyas capacidades fueron extendidaspara convertirlo en un lenguaje orientado a objetos. La cual es lametodologa de programacin ms difundida y utilizada actualmente.Por ltimo, solo queda mencionar que C++ es un lenguaje robusto y hademostrado con el pasar del tiempo de que es un lenguaje que debe seraprendido por cualquier persona que quiere programar y tiene cierta base,porque adems de bueno, el lenguaje C++, es uno de los ms difciles deaprender.Bueno, despus de esta breve introduccin, podemos pasar al captulo 2 "Laspartes de un programa en C++".

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    5/64

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    6/64

    Una parte importante de todo cdigo de programacin son loscomentarios:

    Los comentarios, son partes del cdigo que sirven como referencia paraotros programadores que desean modificar el cdigo fuente. Adems, si unda formulas un cdigo complejo, a los tres meses podras no saber comofunciona, pero si lo has comentado no tendrs problemas.Los comentarios son de dos tipos:

    * // --> Comenta una lnea

    * /* */ --> Comenta un bloque de cdigo, de varias lneas

    Aqu hay un pequeo ejemplo:

    #include #include

    int main()

    {

    /*Este es un comentario

    contina hasta que se cierre

    el slash*/

    clrscr();

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    7/64

    Captulo 3 - Variables y Constantes

    Que es una Variable:

    En C++, una variable es un lugar para guardar informacin, es un espacio enmemoria que guarda datos por un periodo determinado de tiempo. Hay dostipos, unsigned y signed. Todas las variables son signed por default(Signedincluye negativos).

    Tipos de Variables:

    Bool-->Verdadero o Falso

    unsigned short int -->0 a 65,535short int -->-32,768 a 32,767unsigned long int -->0 a 4,294,967,295long int -->-2,147,483,648 a 2,147,483,647int -->-32,768 a 32,767unsigned int -->0 a 65,535char -->256 caracteresfloat -->1.2e-38 a 3.4e38double -->2.2e-308 a 1.8e308

    Definiendo una Variable:Para declarar una variable, primero debe escogerse su tipo, ya sea int, long,o short int. Luego, hay que darle un nombre que, sea de preferenciarelacionado con la funcin que va a realizar. Las variables deben serllamadas tal como han sido declaradas. Edad no es lo mismo que EDAD o queEdaD. Por ejemplo:

    #include

    #include

    int main()

    {

    unsigned short clases;

    long total;

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    8/64

    int alumnos;

    total=clases*alumnos;

    //cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    9/64

    Otro ejemplo:

    #include

    #include

    int main()

    {

    unsigned short int Ancho=5,Largo;

    Largo=10;

    unsigned short int Area=(Ancho*Largo);

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    10/64

    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 cambiarseConstantes Simblicas:

    Una variable simblica, es una variable que est representada por unnombre, tal como una variable est representada. A diferencia de unavariable, sin embargo, su valor no puede ser modificado.

    Estudiantes = clases * estudiantesporclase;

    clases y estudiantesporclase son variables simblicas. En cada lugar que elprograma lea estudiantes, asignar el valor de clases*estudiantesporclase.

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    11/64

    Definiendo constantes con "const":

    Utilizar const es muy til, ya que se le puede dar un tipo a las variable yvolverla constante.

    const unsigned short int estudiantesporclase=15;

    Constantes Enumeradas:

    Las constantes enumeradas, te permiten crear nuevos tipos y luego definirdichas variables con valores que estn restringidos a un grupo de posiblesvariables.

    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

    #include

    int main()

    {

    enum Dias {Domingo,Lunes,Martes,Miercoles,Jueves,Viernes,Sabado};

    int opcion;

    coutopcion;

    if(opcion==Domingo || opcion==Sabado)

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    12/64

    Captulo 4 - Expresiones y Secuencias

    Que son Secuencias:En C++, una secuencia controla la ejecucin, evala una expresin, o no hacenada.

    x = a + b;

    A diferencia del algebra, en la cual x sera igual a a + b, en C++, x obtendrel valor de la suma de a + b.

    Bloques y Secuencias compuestas:

    En cualquier lugar que puedas poner una secuencia, puedes poner unasecuencia compuesta. Una secuencia compuesta, ejecuta una serie deexpresiones. Comienza con una { y termina con una }.

    {

    temp=a;

    a=b;

    b=temp;}

    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.

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    13/64

    Operador de Asignacin:

    El operador de asignacin provoca que la variable izquierda tome el o losvalores 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 divisinde 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 operadordecremento (--) lo decrementa en un dgito.

    c++;

    c = c + 1;

    //Son equivalentes

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    14/64

    Prefix y Postfix:

    El prefix se escribe antes del nombre de la variable, e incrementa el valor yluego 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

    #include

    int main()

    {

    int miEdad = 23;

    int tuEdad = 23;

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    15/64

    Operadores Relacionales:

    Son usados para determinar cunado dos nmeros son iguales o si uno esmayor que el otro:

    Igualdad == 100==50 falso

    Desigualdad != 100!=50 verdadero

    Mayor que > 100>50 verdadero

    Mayor igual que >= 100>=50 verdadero

    Menor que < 100

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    16/64

    El operador ELSE:

    Este operador es utilizado junto con IF, si la condicin no se cumple se

    ejecuta otra accin:

    #include

    #include

    int main()

    {

    int miNum=5,tuNum;

    couttuNum;if(tuNum>miNum)

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    17/64

    if(tuNum>miNum){

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    18/64

    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

    #include

    int main()

    {

    int x,y,z;cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    19/64

    Captulo 5 - FuncionesQu es una funcin?

    Una funcin es un subprograma que puede interactuar con los datos ydevolver 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 Parmetros que recibe

    Ejemplo de una funcin

    #include

    #include

    int Area(int largo, int ancho) //Prototipo de la funcin

    {

    return largo * ancho;

    }

    int main()

    {

    int largoTerreno, anchoTerreno, areaTerreno;

    clrscr();

    coutanchoTerreno;coutlargoTerreno;

    areaTerreno=Area(largoTerreno,anchoTerreno);

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    20/64

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    21/64

    int main()

    {

    clrscr();

    int edad,nedad; //Variable Local

    coutaltura;

    coutpeso;

    coutedad;

    nedad=Edad(edad);

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    22/64

    Captulo 6 - Clases

    Qu es una clase?

    Una clase es una declaracion que sirve como un contenedor para nuevasvariables creadas por nosotros mismos.Las clases pueden representar situaciones o elementos de la vida real, locual nos ayuda a elaborar mejores programas y que son por ende ms fcilesde mantener y actualizar. Cada elemento que forma la clase, es llamadoObjeto.

    Ejemplo de una clase

    class Estudiante

    {unsigned int codigo;

    unsigned int edad;

    void Comentarios();

    }

    Definir un objeto

    Los objetos se declaran de la misma manera en que se declararia unavariable normal.

    Estudiante Alvaro; //Variable Alvaro de t ipo Estudiante .

    Acceder a los miembros de las clases

    Alvaro.codigo = 108;

    Alvaro.edad = 24;

    Miembros Privados y Miembros PblicosTodos los miembros de una clase, son privados por default, es decir, que sino se especifica lo contrario, van a ser privados.Para poder acceder y asignar valores a los miembros de la clase, estosdeben ser publicos.

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    23/64

    #include

    #include

    class Estudiante

    {

    public:

    unsigned int codigo;

    unsigned int edad;

    void Comentarios();

    };

    int main()

    {

    Estudiante Alvaro;

    Alvaro.edad = 24;

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    24/64

    void sEdad(unsigned int Ed);

    void Comentarios();

    private:

    unsigned int Codigo;

    unsigned int Edad;

    };

    * Para acceder a estos datos y modificarlos se utiliza lo siguiente:

    Estudiante Alvaro;Alvaro.sCodigo(108);

    Implementando los metodos de la clase

    A continuacin est un ejemplo de como implementar nuestra claseEstudiante.

    #include

    #include

    class Estudiante

    {

    public:

    unsigned int gCodigo();

    void sCodigo(unsigned int Cod);

    void Comentarios();

    private:

    unsigned int Codigo;

    };

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    25/64

    unsigned int Estudiante::gCodigo()

    {

    return Codigo;

    }

    void Estudiante::sCodigo(unsigned int Cod)

    {

    Codigo = Cod;

    }

    void Estudiante::Comentarios()

    {

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    26/64

    #include

    #include

    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;

    }

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    27/64

    unsigned int Estudiante::sCod(int cod)

    {

    vCod = cod;

    }

    int main()

    {

    clrscr();

    Estudiante Alvaro(108);

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    28/64

    Captulo 6 - Secuencias de Control

    Qu son las secuencias de control?

    La secuencias de control, son mtodos o funciones, que nos permitenejecutar una instruccin ms de una vez, o por un nmero ilimitado de veceso hasta que se cumpla una condicin dada.Para mi punto de vista, este es uno de los puntos ms importantes, ya quecasi todos o todos los lenguajes de programacin los utilizan, aunque no poreso, significa que no sean fciles de aprender y utilizar.

    While o Mientras

    While o Mientras(En pseudo-cdigo), permite ejecutar una instruccin o unconjunto de instrucciones mientras la condicin dada sea verdadera.

    #include

    #include

    int main()

    {

    int counter=0;

    while(counter

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    29/64

    #include

    #include

    int main()

    {

    clrscr(); //Para borrar la pantalla.

    int num;

    coutnum;

    while(num>0 && num

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    30/64

    do //Hacerlo una vez

    {

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    31/64

    int main()

    {

    clrscr();

    int opcion;

    do

    {

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    32/64

    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 bastantecomplicado sobre todo para los principiantes en programacin, de todosmodos, tratar de explicarlos de la mejor manera posible.

    Ejemplo de las Direcciones de Memoria

    Cada variable est asignada a un espacio en memoria determinado, con lospunteros, nosotros podemos especificar en que espacio de memoria localizarnuestras variables.

    #include

    #include

    int main()

    {

    unsigned short shortVar = 5;

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    33/64

    int howMany = 8; //Creamos e inicializamos una variable

    int * pMany = 0; //Creamos e inicializamos un puntero, lo ms

    //recomendable, es siempre comenzar inicializandolo con cero, para

    //evitar crear un Wild o Stray Pointer.pMany = &howMany; //Se le asigna al puntero, la direccin de la variable.

    //Tambin se puede declarar e inicializar al mismo tiempo.

    int howMany = 8;

    int * pMany = &howMany;

    Para que usar Punteros

    Los punteros son muy usados, para manejar datos en el rea libre dememoria, acceder a datos y funciones de clases, pasar variables porreferencia a las funciones, etc.

    Operador New

    El operador New, se utiliza para crear un objeto en el rea libre dememoria. El resultado del operador New, es una direccin de memoria quedebe ser asignada a un puntero. Ms adelante veremos para que nos sirveesto exactamente

    unsigned long int * pPointer; //Se declara el tipo del puntero

    pPointer = new unsigned long int; //Se crea en la memoria libre

    *pPointer = 77; //Se le asigna un valor

    El operador Delete

    Cuando terminas de utilizar un puntero, debes regresarlo al rea libre dememoria, esto se hace utilizando el operador Delete. Los punteros no seeliminan automaticamente y puden provocar una perdida innecesaria dememoria.

    delete pPointer;

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    34/64

    Ejemplo

    #include

    #include

    int main()

    {

    int lVal = 8;

    int * pLocal = &lVal;

    int * pStore = new int;

    *pStore = 5;

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    35/64

    #include

    #include

    class Estudiante

    {

    public:

    Estudiante();

    ~Estudiante();

    private:

    int vCod;

    };

    Estudiante::Estudiante()

    {

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    36/64

    Accesando a los miembros de Datos

    Para poder acceder a los miembros de datos de un objeto creado en al realibre de memoria, se debe utilizar al operador ->.

    #include

    #include

    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

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    37/64

    #include

    #include

    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

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    38/64

    Captulo 8 - Referencias Qu son las referencias?

    Las referencias son alias que se le pueden dar una variable, es como unsobrenombre y todo lo que se le haga al alias le ocurrir a la variable yviceversa. Se reconocen porque al comenzar el nombre de la variable, se lesantepone el simbolo &.

    Ejemplo de Creacin y uso de Referencias

    #include

    #include

    int main(){

    int miNum;

    int &rNewNum = miNum;

    miNum = 14;

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    39/64

    #include

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    40/64

    Retornando multiples valores

    Como sabemos, una funcin solo puede retornar un valor, pero que pasa sinecesitamos retornar ms de uno, talves dos o tres... Con las referenciaspodemos hacerlo.

    #include

    #include

    int Potencias(int, int &, int &);

    int main()

    {

    int numero,cuadrado,cubo;

    coutnumero;

    Potencias(numero, cuadrado, cubo);

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    41/64

    Cuando usar Referencias y cuando Punteros

    Las referencias no pueden ser reasignadas, tampoco pueden ser nulas. Por logeneral, recomiendo utilizar Referencias, porque son ms sencillas y msseguras, pero si cumple alguna de las dos limitaciones es necesario utilizarpunteros.

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    42/64

    Captulo 9 - Herencia Qu es la Herencia?

    La herencia puede describirse como un concepto de la vida real, porejemplo, de los de los animales, podemos sacar a los mamiferos, de losmamiferos a los gatos, y de los gatos a los gatos salvajes de las estepasnorafricanas y de estos ltimos a mi gato "Cheko". Podemos decir que"Cheko" desciende de toda esta lnea de clasificaciones y por lo tanto debetener tambin sus caracteristicas, tanto de los gatos como de losmamiferos. En las Herencias, las clases, heredan atributos y funciones deotras clases que son superiores a ellas.

    Ejemplo de Herencia

    #include

    #include

    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

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    43/64

    class Gato:public Mamiferos

    {

    public:

    Gato() {}~Gato() {}

    void Dormir() const {cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    44/64

    #include

    #include

    class Mamiferos

    {

    public:

    Mamiferos():vEdad(2) {cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    45/64

    Captulo 10 - Arreglos o Matrices Qu son los Arreglos o Matrices?

    Los Arreglos o Matrices, pueden definirse com un conjunto de elementos,oredenados por un ndice que van del 0 al n-1. Se representan por: longNumeros[5], donde, los ndices van del 0 al 4.

    Ejemplo de Arreglos o Matrices

    #include

    #include

    int main()

    {

    int Array[5],i;

    for(i=0;i

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    46/64

    Declarando Arreglos o Matrices

    Los Arreglos o Matrices, pueden tener cualquier nombre, pero no el mismonombre que otra variable que ya haya sido declarada.

    Arreglo o Matriz de Objetos

    Al igual que las variables o caracteres, los objetos tambin pueden seralmacenados en un arreglo o matriz.

    #include

    #include

    class Gato

    {

    public:

    Gato() {vEdad = 2; vPeso = 4;}

    ~Gato() {}

    int gEdad() const {return vEdad;}

    int gPeso() const {return vPeso;}

    void sEdad(int Edad) {vEdad = Edad;}

    private:

    int vEdad;

    int vPeso;

    };

    int main()

    {

    Gato Gatitos[5];int i;

    for(i=0;i

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    47/64

    for(i=0;i

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    48/64

    Arreglos o Matrices de Punteros

    Estos son utilizados para poder almacenar los objetos en el rea libre dememoria.

    #include

    #include

    class Gato

    {

    public:

    Gato() {vEdad = 2; vPeso = 4;}

    ~Gato() {}

    int gEdad() const {return vEdad;}

    int gPeso() const {return vPeso;}

    void sEdad(int Edad) {vEdad = Edad;}

    private:

    int vEdad;

    int vPeso;

    };

    int main()

    {

    Gato * Gatitos[20];

    int i;

    Gato * pCheko;

    for(i=0;isEdad(2*i+1);

    Gatitos[i] = pCheko;

    }

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    49/64

    for(i=0;i

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    50/64

    Captulo 11 - Polimorfismo

    Qu es el Polimorfismo?

    Cuando hablamos de herencia, dijimos, que podiamos tomar una clase yderivar otra de ella, haciendo que la clase derivada tomara las funciones yatributos de la clase base o primaria. Pues bien, que pasa si tenemos dosclases primaria y queremos que nuestra nueva clase derivada, derive deambas, es decir, herede los atributos y los mtodos de las clases de lascuales deriv. Por ejemplo, podemos tener la clase Caballo y la clase Ave, elprimero galopa y el segundo vuela, pero supongamos que queremos crear unaclase que derive de los dos, por ejemplo, un Pegaso, que puede cabalgar yvolar, en Herencia, esto no sera posible, y de serlo, nos obligara a crearvarias 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 lasdos cosas, pues bien, con el Polimorfismo, podemos manejar que esas dosclases bases se fusiones para la clase derivada que vamos a crear.

    #include

    #include

    class Caballo

    {

    public:

    Caballo() {}

    ~Caballo() {}

    virtual void Galopar() const {cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    51/64

    class Pegaso:public Caballo,public Ave

    {

    public:

    Pegaso() {}

    virtual ~Pegaso() {}

    virtual void Galopar() const {cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    52/64

    else if(choice==3)

    {

    Pegaso * Pegasus = new Pegaso;

    Pegasus->Galopar();

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    53/64

    Captulo 12 - Clases especiales y Funciones

    Miembros de Datos Estticos

    Los miembros de datos estticos, son aquellos, que permanecen a lo largo detodo el proceso de las instancias de la clase, estn en contacto tanto con losdatos globales como con los objetos de la clases. En realidad pertenecen alas clases y existen una por clase.

    #include

    #include

    class Gato{

    public:

    Gato() {CuantosGatos++;}

    virtual ~Gato() {CuantosGatos--;}

    static int CuantosGatos;

    };

    int Gato::CuantosGatos = 0;

    int main()

    {

    const int MaxGatos = 5;

    int i;

    Gato * Gatitos[MaxGatos];

    for(i=0;i

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    54/64

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    55/64

    Captulo 13 - Cadenas de Caracteres

    Miembros de Cin

    get() sin parmetros

    Este comando retorna el valor del caracter encontrado hasta que encuentreel final del archivo. No se pueden concatenar varias instancias decaracteres en el get() sin parmetros.

    #include

    #include

    int main()

    {

    char ch;

    char = Hola;

    while((ch=cin.get())!=EOF) //EOF, End of File.

    {

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    56/64

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    57/64

    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 quedeterminemos.

    #include

    #include

    int main()

    {

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    58/64

    cout

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    59/64

    oftream fout("prueba.cpp") //Para escritura

    ifstream fin("prueba.cpp") //Para Lectura

    Ejemplo

    #include

    #include //Para gets();

    #include //Para fout y fin

    void ImprimirN();

    void Ingresar();

    char nombre[20];

    float sueldo,salario,sueldoneto;

    int dias,i,j;

    int main()

    {

    clrscr();

    for(i=0;i

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    60/64

    cin>>salario;

    coutdias;

    coutsueldoneto;

    //"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

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    61/64

    Comportamiento de Ofstream

    Pueden utilizarse ios para modificar el comportamiento del oftream.

    ios::app Agrega los datos al final del archivo ios::ate Pone el cursor al final del archivo pero te permite escribir

    donde sea ios::trunc Trunca el archivo. ios::nocreate Si el archivo no existe, ocurre un error ios::noreplace Si el archivo ya esxite, ocurre un error

  • 8/2/2019 El Arte de Programar C++ (Espaol)

    62/64

    Comentarios Finales

    Espero que este tutorial les sea til como una pequea introduccin allenguaje de programacin C++. Obviamente, queda mucho camino porrecorrer, uno no puede abarcar todas las posibilidades que posee unlenguaje, en un tutorial, ni en diez libros. Lo importante ahora, es quebusque otros tutoriales con los que pudean complementarse y bajen cdigos

    y lo revisen hasta comprenderlos a la perfeccin. Dems est decir quecuentan conmigo para cualquier duda que tengan.

    Pueden acceder a mi pgina web:

    SinglePath games design

    Escribirme un mail:[email protected]

    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".

    mailto:[email protected]://www.xpertia.com/http://www.xpertia.com/mailto:[email protected]
  • 8/2/2019 El Arte de Programar C++ (Espaol)

    63/64

    Bibliografa y Agradecimientos

    Bibliografa:

    "Teach Yourself C++ in 21 Days" de Sams Publishing. http://www.planet-source-code.com http://lawebdelprogramador.com

    Agradecimientos:

    Jesse Liberty de Liberty Associates, autor de "Teach Yourself C++ in21 Days".

    www.Planet-Source-Code.com www.La web del programador.com www.xpertia.com www.informit.com Mi novia Milly, por todo su apoyo.

    http://www.planet-source-code.com/http://lawebdelprogramador.com/http://www.planet-source-code.com/http://www.xpertia.com/http://www.informit.com/http://www.informit.com/http://www.xpertia.com/http://www.planet-source-code.com/http://lawebdelprogramador.com/http://www.planet-source-code.com/
  • 8/2/2019 El Arte de Programar C++ (Espaol)

    64/64

    15.- El Fn