1er_dep_poo

43
Unidad I. Fundamentos de Programación Orientada a Objetos. 1 Bases fundamentales de la Programación Orientada a Objetos. Introducción: En este apartado darás un repaso de lo que es un Lenguaje de Programación, aprenderás que es el Lenguaje de Programación C++ y por qué es un lenguaje orientado a objetos, así mismo conocerás la estructura básica de un código fuente realizado en este lenguaje y volverás a usar el IDE Dev-C++ (En caso de que no lo tengas lo podrás instalar) en el cual editaras, depuraras y compilaras todos los programas que realices a lo largo de esta unidad de aprendizaje. Antes de iniciar es importante que recuerdes que es un lenguaje de programación, aunque este tema lo estudiaste en la Unidad de aprendizaje Fundamentos de programación, revisarlo te servirá como repaso. ¿Qué es un Lenguaje de Programación? Un lenguaje de programación es un conjunto de símbolos, reglas sintácticas y semánticas, mismas que definen concretamente la estructura, la escritura y relación entre los comandos, de instrucciones, diseñado para expresar operaciones, mismas que pueden ser ejecutadas por computadoras. Tool tip: Sintaxis: Las reglas sintácticas, estudia las formas en que se combinan las palabras, así como las relaciones existentes entre ellas. Las reglas semánticas: Se refieren a los aspectos del significado, sentido o interpretación del significado de un determinado elemento, símbolo, palabra, expresión o representación formal. También puede usarse para crear programas que controlen el comportamiento físico y lógico de cualquier máquina electrónica, para expresar algoritmos, o para el desarrollo de un SO. Tool tip: Algoritmo: un algoritmo es un conjunto de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Para saber más: Al proceso por el cual se escribe, se depura y se compila el código fuente (instrucciones escritas) de un programa se le llama programación. Cabe aclarar que la palabra programación también se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos.

description

nose

Transcript of 1er_dep_poo

  • Unidad I. Fundamentos de Programacin Orientada a Objetos.

    1 Bases fundamentales de la Programacin Orientada a Objetos.

    Introduccin:

    En este apartado dars un repaso de lo que es un Lenguaje de Programacin, aprenders que es el Lenguaje de Programacin C++ y por qu es un lenguaje orientado a objetos, as mismo conocers la estructura bsica de un cdigo fuente realizado en este lenguaje y volvers a usar el IDE Dev-C++ (En caso de que no lo tengas lo podrs instalar) en el cual editaras, depuraras y compilaras todos los programas que realices a lo largo de esta unidad de aprendizaje. Antes de iniciar es importante que recuerdes que es un lenguaje de programacin, aunque este tema lo estudiaste en la Unidad de aprendizaje Fundamentos de programacin, revisarlo te servir como repaso. Qu es un Lenguaje de Programacin?

    Un lenguaje de programacin es un conjunto de smbolos, reglas sintcticas y semnticas, mismas que definen concretamente la estructura, la escritura y relacin entre los comandos, de instrucciones, diseado para expresar operaciones, mismas que pueden ser ejecutadas por computadoras.

    Tool tip: Sintaxis: Las reglas sintcticas, estudia las formas en que se combinan las palabras, as como las relaciones existentes entre ellas.

    Las reglas semnticas: Se refieren a los aspectos del significado, sentido o interpretacin del significado de un determinado elemento, smbolo, palabra, expresin o representacin formal.

    Tambin puede usarse para crear programas que controlen el comportamiento fsico y lgico de cualquier mquina electrnica, para expresar algoritmos, o para el desarrollo de un SO.

    Tool tip: Algoritmo: un algoritmo es un conjunto de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.

    Para saber ms:

    Al proceso por el cual se escribe, se depura y se compila el cdigo fuente (instrucciones escritas) de un programa se le llama programacin.

    Cabe aclarar que la palabra programacin tambin se define como el proceso de creacin de un programa de computadora, mediante la aplicacin

    de procedimientos lgicos.

  • C++Stroes latipos

    La Psus tcnprinc

    Tooprog

    Qu

    En lque progde uautopor hacevariacapatipo

    As veloC++

    Es pmsinteranteprog

    Comnece

    Lenguaj+ es un lenoustrup. Es a posibilidas que se co

    ProgramProgramaci

    interaccionnicas, inclucipios del a

    lo tip: Pagramacin q

    No

    Noy s

    Aq

    u es un ob

    a Programrepresenta

    grama escrun objeto, omvil, el ilo tanto esen ser un ables, por eaz de almashort que a

    mismo, unocidad y al f+ el compor

    posible ques complejosrpretando eerior con egrama.

    mo ya sabeesario imp

    e de progra

    nguaje de una exten

    ad de redefomporten co

    macin Orie

    n Orientanes, para yendo hereao de 199

    radigma dque es ado

    ta importan

    confundasu modelo d

    u acaba la

    bjeto?

    acin Oriena y realiza lito en Lengpor ejempimaginar ste objeto p

    auto, estaejemplo la cenar una almacena n

    n auto posfrenar, etc. rtamiento de

    e los objetos), recibienesta inform

    el propsito

    es, el cdigplementar u

    amacin C+

    programacsin (mejofinir los opomo tipos f

    entada a Ob

    da a Objetdisear apencia, abs

    90.

    de programoptado por u

    nte:

    s los Lengude program

    a nota

    ntada a Oblas accioneguaje C++ qlo si un pry ver el

    poseer caas caractermarca de cadena de

    nmeros de

    see un cola forma d

    e un objeto

    s (programndo mensa

    macin y ejo de llevar

    go maquinauna herrami

    ++

    cin orientara) del lengeradores (s

    fundamenta

    bjetos

    tos o POO plicacionestraccin, p

    macin: Ununa comun

    ajes C y Cacin es or

    bjetos (POOes de un objque represerogramador

    cdigo fuearactersticarsticas en un automcaracteres

    e tipo entero

    mportamiee definir en

    o es a trav

    mas) interacajes (informjecutando r a cabo c

    a es muy dienta que s

    ado a objeguaje de prsobrecargaales (tipos d

    es un paras y programpolimorfismo

    n paradigmidad de pro

    C ++, ya qurientado a o

    O), un objetbjeto de la venta las carr quiere reente de estas que lo p

    el cdigo vil se pued

    s, el modeloo.

    nto propion el cdigo s de mtod

    ctan entre macin a tuna o ms

    con xito la

    difcil de inse encargue

    etos, disearogramaci

    a de operadderivados).

    adigma de mas informo y encaps

    ma de proogramadore

    e este ltimobjetos.

    to se definevida real, enractersticaalizar un cte programaparticulariza

    fuente dede almaceno es posible

    , por ejemfuente de u

    dos (funcion

    s (con esttravs de ls accionesa tarea pa

    nterpretar pe de traduc

    ado en el n C. Una pdores), y d

    programacmticos. Essulamiento

    ogramacines.

    mo es una m

    e como la un otras palas (atributos

    cdigo fuena como si fan es decir

    el programanar en una e almacena

    mplo al arraun programnes)

    to se puedelos argume

    s vinculadaara la cual

    para una pecir un Leng

    ao 1980 particularide poder cr

    cin que usst basado. Su uso

    n es un m

    mejora del

    unidad (cdabras, un os) y el compnte que cofuese un ar propiedaa estn devariable de

    arlo en una

    ancar, al cma escrito e

    en generarentos de u

    as a este mha sido r

    ersona, pouaje de Pro

    por Bjarnead del C++

    rear nuevos

    sa objetos yo en variascomenz a

    mtodo de

    lenguaje C

    digo fuente)objeto es unportamientontrole a unuto (objeto

    ades que loefinidas poe tipo stringvariable de

    cambiar deen Lenguaje

    r programasun mtodomensaje, lorealizado e

    r lo que esogramacin

    e + s

    y s a

    e

    C

    e) n o n ) o r g e

    e e

    s ) o el

    s n

  • a cun c

    Qu

    Es ulengsimpeste

    Exisprogpermencuque cuen(Entcabe

    Comobse

    Este

    DEOte

    1.1

    A loC++progque est

    Se tse mlargo

    Tu p

    En eC++

    digo maqucompilador.

    u es un Co

    un programguaje que plemente tee proceso d

    sten diferengramacin mita editar uentre errose encarg

    ntan con etorno de De menciona

    mo se te meerva el sigu

    e video

    EV_ESIMcleandoen

    Nla

    Estructura

    o largo de + y se te exgrama escr

    cuenta el ndar de la

    te invita a remuestra te o de esta u

    primer prog

    el curso an+, lo prime

    uina, a este

    ompilador?

    ma informtigeneralme

    exto. Genere traducci

    ntes compino se necel cdigo fres en el cue de trad

    estas tres esarrollo Inar que en e

    encion, esuiente video

    tutorial lo

    ME_TICelbuscador

    Nota importaa unidad de

    general de

    este apartxplicar detito en este Lenguaje Ccomputado

    edoblar esfser de gr

    unidad de a

    rama en le

    terior aprenro que va

    e trabajo de

    co que tradente es el rando un prn se conoc

    ladores coesita solamfuente (escdigo fuentucir el cdherramient

    ntegrado o sta unidad

    ste IDE se o, el cual te

    o puedes

    COMAdeyoutube

    ante: Es me aprendiza

    e un progra

    tado conoctalladamentLenguaje d

    C++ para eora.

    fuerzos y aran utilidad prendizaje.

    nguaje C++

    ndiste a pros a conoc

    e traduccin

    duce un prolenguaje

    rograma eqce como co

    mo Turbo mente un ccribir el cdte para queigo fuente tas de propor su sigde aprendi

    va a utilizae mostrar c

    s encontra

    N_wme:INGEAVIL

    uy importanaje se utiliza

    ma escrito

    cers la estte el trabajde Programenviar y re

    poner todapara la re

    .

    +: Hola mu

    ogramar encer es la e

    n se le llam

    ograma escmquina (

    quivalente qompilacin.

    C++, Borlacompilador,digo fuentee pueda ser

    a cdigo mgramacin,

    gla en ingleizaje se util

    ar en esta ucomo desca

    ar en y

    mvLES

    nte que desar para rea

    en Lengua

    tructura geo que reali

    macin, se ecibir inform

    a tu atencializacin d

    undo

    n lenguaje Cestructura d

    a compilar

    crito en un (ceros y uque la mq

    and C++ y, tambin ), otro quer compiladomaquina, si, a los cua

    es:. Integraizar el IDE

    unidad de aargarlo e in

    you tuve,

    scargues ealizar los pr

    aje C++

    eneral de uza cada unte explican

    macin tant

    n ya que lae todos los

    C, ahora lode un prog

    un program

    lenguaje dunos), perouina ser c

    GCC peroes necesa

    e se encargo correctamin embargoales se leated DeveloE Dev C++

    aprendizajenstalarlo en

    con el

    ste IDE ya rogramas q

    n programana de las ln las diferento a la salid

    a informacis programa

    aprendergrama esc

    ma, trabajo

    e programao tambin capaz de in

    o en el proario un progue de dep

    mente) y un o hay proges conoce opment En

    e, si no cuetu computa

    siguiente

    que a lo laque generar

    a escrito eneas de cntes herramda como a

    n que a cas que efec

    s a hacer ecrito en est

    que realiza

    acin a otropuede se

    nterpretar. A

    oceso de laograma quepurarlo (que

    compiladogramas que

    como IDEnvironment)

    entas con adora:

    e nombre

    rgo de todars.

    n Lenguajedigo de unmientas cona la entrada

    ontinuacinctuaras a lo

    en lenguajete lenguaje

    a

    o r

    A

    a e e r e E ),

    l

    e:

    a

    e n n a

    n o

    e e

  • mediante un cdigo fuente muy sencillo que muestra en pantalla un mensaje con el texto Hola mundo y posteriormente se te har la explicacin de cada uno de sus elementos lo que te permitir aprender la estructura general de cualquier programa escrito en Lenguaje C++.

    Ya que hayas conocido las partes de este programa vas a realizarlo y a probarlo, para lo cual vas a utilizar el IDE Bloodshed Dev-C++ que instalaste en tu computadora.

    A continuacin se te muestra una imagen que muestra el resultado de editar, depurar y compilar el programa Hola mundo.

    Cdigo fuente del programa Hola Mundo

    Recuerda que se le llama cdigo fuente a las instrucciones escritas por un programador en un lenguaje de programacin, mismas que no pueden ser ejecutadas por la computadora, porque solo entiende el Lenguaje maquina (ceros y unos), y para traducir el cdigo fuente a cdigo maquina se necesita un compilador.

    Este es el cdigo fuente del programa Hola mundo:

    A continuacin se explica cada una de las lneas de cdigo que lo componen, pon mucha atencin.

    #include

    Cuando el compilador se encuentra con esta directiva la sustituye por el contenido del archivo indicado (En este caso es el archivo iostream). En otras palabras la directiva del preprocesador abre el archivo iostream selecciona todo su contenido, lo copia en el portapapeles y lo pega en lugar la directiva #include < >.

    La sintaxis de esta directiva es #include < >, dentro de los operadores < > se escribe el nombre de una librera, (en el caso del ejemplo se utiliz iostream, (nota que ya no es necesario utilizar la extensin.h como en el Lenguaje C ) Generalmente es esta directiva la que se incluye al iniciar un cdigo fuente porque en ella se encuentran declaradas las funciones ms bsicas, por ejemplo: las funciones aritmticas que te permitirn sumar, restar, multiplicar o dividir nmeros y las funciones

  • necesarias para mostrar datos por la pantalla o solicitar informacin por el teclado, no obstante existen otras directivas, mismas que se te explicarn posteriormente.

    iostream Se escribe en medio de los operadores < >, para indicar a la directiva del preprocesador #include que este es el nombre de la librera que se debe incluir, ya que se buscan por nombre.

    Repasando: Qu es una librera?.

    Una librera es un conjunto de recursos (algoritmos) prefabricados que pueden ser utilizados por el programador para realizar determinadas operaciones.

    Por ejemplo: Si creas un programa en el cual necesitas obtener el coseno de un ngulo (cos ), debes incluir la librera cmath, que es la librera dentro de la cual est declarada y definida la funcin cos( ).

    using namespace std; (usar espacio de nombres std)

    using es una palabra reservada que significa usar esta palabra le indica al compilador que se utilizar el namespace (espacio de nombres) llamado std.

    Las libreras estndar de C++ declaran y definen muchas variables y funciones, por lo anterior es muy probable que el programador declare sus propias funciones o variables con el mismo nombre de alguna de las funciones o variables declaradas dentro de alguna librera, esto puede provocar errores muy difciles de diagnosticar, para solucionar esta situacin en el Lenguaje C++ todas las declaraciones estndar se han puesto en el espacio de nombres std, por lo que al utilizar esta instruccin se podrn declarar variables o funciones con cualquier nombre, aun cuando estos nombres ya se hayan utilizado antes en las declaraciones de las libreras, sin que el depurador envi el mensaje que indique que se sta re declarando.

    Int main( )

    Todos los programas escritos en Lenguaje C++ deben tener una funcin llamada main( ) para poder ser catalogados como un programa, si el cdigo fuente no tiene declarada y definida esta funcin se puede considerar como una librera o simplemente cdigo.

    La funcin principal main( ) es la primera en ejecutarse. La palabra int que tiene al principio indica que, cuando la funcin main( ) finalice, esta devolver un nmero, mismo que ser entero. Si el valor devuelto es cero indica que el programa termino sin errores, en caso de devolver un valor distinto de cero, esto indicar que ha ocurrido algn error durante la ejecucin del programa.

    { (Llave de apertura)

    La llave de apertura delimita el inicio de las lneas de cdigo que pertenecen a una funcin.

    En el caso del ejemplo anterior, se comienza a escribir el trabajo que realizar la funcin main() a partir de la llave.

    / / (Comentario)

  • Estoel cotra

    Cuay n

    Para

    Recdond

    cout

    Estamen

    coutinfor

    Todo

    Descade

    end

    syst

    Estaen pprogpodr

    } (L

    La lfunccierr

    Nota

    o es un comdigo fuentpersona le

    ando el comnicamente s

    a escribir un

    cuerda que de comienz

    t

  • El operador ; (punto y coma) del final de la lnea de cdigo, se utiliza en el Lenguaje C++ para separar una instruccin de otra. Se pueden poner varias instrucciones en la misma lnea siempre que se separen por un punto y coma.

    Como habrs observado el cdigo fuente de un programa escrito en Lenguaje

    C++ est compuesto por palabras o instrucciones escritas en el idioma ingls, a estas instrucciones se les conoce como palabras reservadas, ya que ests tienen una funcin preestablecida y especfica para el compilador. Estas palabras se escriben tal y como se muestran en las explicaciones que se te dan.

    El cdigo fuente adems de estar compuesto por palabras reservadas est integrado por smbolos como ( ) ; { } si no sabes cmo escribir

    alguno de estos smbolos puedes consultar la tabla del cdigo ASCII.

    Para saber ms:

    Un ejemplo de cmo apoyarte en esta tabla es el siguiente, si tienes que escribir una llave de apertura, ubica en la tabla del cdigo ASCII el smbolo y observa el nmero que tiene asignado en la columna Dec. Para escribir el smbolo mantn presionada la tecla Alt y presiona en seguida el nmero 123

    que aparece en la columna Dec, despus suelta la tecla Alt y se escribir el smbolo {

    Realizando el programa

    Ya que se te explicaron los componentes del programa Hola mundo, se te presenta un video en el que se muestra la forma de utilizar el Dev C++, as como editar, deparar y compilar el mismo. Pon mucha atencin ya que en la actividad de aprendizaje siguiente vas a realizar un programa.

    TutorialCplusplusOtecleandoenelbuscadordeyoutube:INGEAVILES

    Ya que se te ha explicado el cdigo fuente del programa Hola Mundo ahora se te pide que realices la siguiente actividad, la cual tiene por objetivo que practiques la sintaxis del programa, adems de lo aprendido.

    Actividad de aprendizaje 1. Mi primer programa

    Ahora que conoces la estructura general de un programa creado en Lenguaje C++, realiza la siguiente actividad, la cual tiene por objetivo que reconozcas la estructura de un programa y lo construyas, adems de que pondrs en prctica el conocimiento que acabas de adquirir.

  • Instrucciones:

    1. Edita el cdigo fuente del programa hola mundo que acabas de revisar, depralo y complalo en el compilador Dev C++

    2. Debes enviar tu archivo hasta que haya sido compilado, es decir que Dev C++ no te haya marcado error, de lo contrario no se tomar esta actividad como vlida. El archivo que debes subir a la plataforma es el cdigo fuente, es decir el archivo con extensin .c que se realiz.

    Cuando tengas listo tu archivo gurdalo en tu PC y envalo con tus datos en el siguiente formato: apellidopaterno_materno_nombre_actividadnumero

    1.2 Salida estndar.

    Un programa escrito en Lenguaje C++ debe permitir la comunicacin e interaccin entre el usuario del programa y l mismo, para lograrlo es necesario que el programa envi mensajes al usuario, quien debe estar en posibilidad de comprenderlos, el medio ms eficaz para llevar a cabo esta tarea es la pantalla de la computadora o salida estndar.

    a) cout

    cout es un objeto de la clase llamada ostream declarada y definida dentro de la librera llamada iostream, este objeto posee los mtodos necesarios para establecer un flujo de informacin hacia la salida estndar de la computadora (la pantalla) permitiendo as imprimir mensajes de texto o el contenido que almacena una o ms variables en la pantalla de la computadora. cout sobrecarga al operador de insercin (

  • A continuacin se te presenta un cdigo fuente escrito en Lenguaje C++ que muestra en pantalla un mensaje de texto y el contenido de variables de distintos tipos, las lneas de cdigo resaltadas muestran lo que se te acaba de explicar, analzalo con detenimiento.

    El resultado de editar, depurar y compilar este cdigo fuente es el siguiente:

  • Exp

    En ede dpuedense

  • Para ejemplificar lo explicado anteriormente se te presenta a continuacin un programa escrito en Lenguaje C++ que muestra en pantalla un mensaje de texto indicando que se introduzca informacin y posteriormente 9 mensajes de texto, en los cuales pide introducir por el teclado igual nmero de valores para almacenarla en variables de diferentes tipos de datos.

    El resultado de editar, depurar y compilar este cdigo fuente es el siguiente:

    Explicacin:

    En este programa se declaran nueve variables: a, b, c, d, e, f, g, h, i todas ellas de diferente tipo de datos (tipo de variable) a las cuales no se les asigno ningn valor, enseguida se encuentra escrita la siguiente lnea de cdigo: cout

  • insercin (
  • cin >> c >> d ;

    +Las cueles permiten que el usuario introduzca dos valores, uno para la variable llamada c y otro valor para la variable d, ambas son de diferente tipo de variable, c es de tipo long y la variable d es de tipo char. Como puedes notar, la lnea de cdigo: cin >> c >> d ; ofrece una ventaja, ya que con un objeto cin se puede introducir desde el teclado ms de un flujo de informacin que se almacenara en las variables cuyos nombres estn escritos despues de el operador de insercin, en este ejemplo la informacin que el usuario tecle primero se almacenara en la variable llamada c y la que se introduzca despus se almacenara en la variable d. es importante que sepas que no existe ningn lmite para introducir variables con un solo objeto cin. Nota tambin que en esta misma lnea de cdigo no se especifico el tipo de informacin que se deba introducir (tipo de variable) esto se debe a que el objeto cin sobrecarga al operador de insercin para que este pueda actuar sobre todos los tipos de variable

    De esta misma forma se introduce por el teclado el contenido de las variables e, f, g, h e i.

    Conclusin:

    C++ es un lenguaje de programacin orientado a objetos, diseado en el ao 1980 por Bjarne Stroustrup, es una extensin (mejora) del lenguaje de programacin C, donde la Programacin Orientada a Objetos o POO es un paradigma de programacin que usa objetos y sus interacciones, para disear aplicaciones y programas informticos, este lenguaje est basado en varias tcnicas, incluyendo herencia, abstraccin, polimorfismo y encapsulamiento. En la Programacin Orientada a Objetos (POO), un objeto se define como la unidad (cdigo fuente) que representa y realiza las acciones de un objeto de la vida real. En el proceso de elaboracin de un programa escrito en Lenguaje C++ es necesario utilizar una aplicacin que le permita al programador escribir su cdigo fuente, un depurador que le permitir encontrar los errores en el mismo y un compilador que traduzca este programa a un lenguaje mquina dando como resultado un archivo con extensin exe, a las aplicaciones que cuentan con este tipo de herramientas se les conoce como Entorno de Desarrollo Integrado (IDE).

    2. Construccin de clases y objetos.

    Introduccin:

    La programacin estructurada conceptualiza un programa como si fuera una lista de instrucciones que le indican a la maquina que hacer. En cambio, la manera en que la POO conceptualiza un programa es como un conjunto de objetos que se comunican entre s, para realizar las distintas tareas para las que ha sido escrito.

    La POO se basa en la suposicin de que en el mundo real, los objetos se construyen a partir de otros objetos, por ejemplo una computadora es un objeto pero a su vez est formada por otros objetos como la memoria RAM, el procesador, los cables, etc. La combinacin de estos objetos es un aspecto de dicha programacin, pero tambin incluye mecanismos y caractersticas que permiten que la creacin y uso de objetos sea sencilla y flexible.

  • 2.1 Aspectos importantes de POO

    A continuacin se presenta informacin relevante que es necesario que conozcas.

    Un objeto de una determinada clase se crea en el momento en que se define una variable de dicha clase. Por ejemplo, la siguiente lnea de cdigo declara el objeto Asiento001 de la clase tipo Venta_de_boletos que representa el software que permite vender boletos de avin.

    Venta_de_boletos Asiento001; // Crea el objeto Asiento001 de la clase Venta_de_boletos

    Cuando se escribe un programa utilizando un lenguaje orientado a objetos, lo primero que se hace es definir las clases de objetos, donde una clase se conceptualiza como una plantilla para crear mltiples objetos con caractersticas similares.

    Un programa orientado a objetos se compone nicamente de objetos, cada uno de ellos es una entidad que tiene propiedades particulares que estn descritas por los atributos y las formas de operar sobre ellos, que de forma similar estn definidos por los mtodos.

    Cuando se ejecuta un programa orientado a objetos, los objetos reciben, interpretan y responden

    mensajes de otros objetos. En la POO un mensaje siempre est asociado con un mtodo, es decir, cuando un objeto recibe un mensaje, la respuesta al mismo es ejecutar el mtodo asociado con ese mensaje.

    El mtodo que pertenece a una clase de objetos define el comportamiento del objeto creado

    por la clase de objetos y se ejecuta cuando recibe el mensaje vinculado con ese mtodo. Un mtodo puede enviar mensajes a otros objetos solicitando una accin o informacin.

    2.2 Diseo de una clase de objetos

    Para la explicacin de este apartado se utilizar un cdigo fuente que se ir mostrando por secciones, mismas que se describirn a detalle. Es necesario que a la par de cada explicacin vayas escribiendo el cdigo fuente, ya que lo vas a utilizar al finalizar la explicacin de todos sus componentes.

    Enseguida se muestra la forma para declarar y definir una clase de objetos llamada Venta_de_boletos, misma que representa el software que se puede utilizar para la venta de boletos de avin, permitiendo personalizar y almacenar los datos del comprador.

    La sintaxis para declararla es la siguiente:

  • Des

    clasest

    nom

    { (L

    La ll

    }; (L

    La lObs

    Ahoexpl La dsu ta Conobje Rec

    cripcin:

    s: Es una declarand

    mbre_de_la_

    N

    admiracEl nombnmero.No se compiladEl LengNOMBRLos nomde otro s

    Llave de ape

    lave de ape

    Llave de cie

    lave de cieserva que e

    ra que se licar cmo

    declaracin amao, col

    ntinuando coetos llamada

    NombreNumeroCosto deMillas ac

    cuerda que

    palabra reso una clase

    _clase: Es

    Nota: Para d

    Se pu Se pu No s

    cin o de intbre de una c. pueden u

    dor, por ejeuaje C++ d

    RE, son tresmbres de lasin espacio

    ertura)

    ertura indic

    erre)

    erre indica sta llave de

    te mostrao se pueden

    de atributoor, textura,

    on la explica venta de

    del compra de asientoel bolero. cumuladas

    todos los a

    servada, cue de objeto

    el nombre d

    dar nombre

    ueden utilizueden utilizse puedenterrogacinclase se pu

    tilizar comemplo: for, mdistingue es nombres das clases dos entre ello

    ca el inicio d

    el final dee cierre siem

    aron los eln elaborar l

    os dentro deforma, etc

    cacin, paraboletos:.

    ador del boo.

    .

    atributos en

    uyo significs.

    de la clase

    e a las clase

    zar casi todzar los nmn utilizar n, etc.,) el uede forma

    mo nombremain, do, wntre maysde clases d

    deben ser cos.

    de las lnea

    las lneasmpre term

    lementos bos atributos

    e una clase.

    a el ejemplo

    oleto.

    la clase de

    cado es cla

    .

    es se debe

    as las letraeros del 0 acaracteres nico carctr con nme

    es de claswhile, etc. sculas y mdistintas. cadenas de

    as de cdig

    s de cdigina con el o

    bsicos qus de la mis

    e describe l

    o se propon

    e objetos so

    se, sirve p

    n seguir las

    as del alfabeal 9.

    especialeter que es aeros y letras

    ses las pa

    insculas.

    e caractere

    o que perte

    o que pertoperador pu

    e conformama.

    as caracter

    nen los sigu

    on definidos

    ara indicar

    s siguientes

    eto, except

    es (puntosaceptado ess pero no s

    alabras res

    Por lo tant

    s, es decir

    enecen a un

    tenecen a unto y coma

    an una cla

    rsticas de

    uientes atri

    s por variab

    r al compila

    s reglas:

    o la .

    , comas, s el guin b

    se puede in

    servadas q

    to: nombre

    , un carct

    na clase de

    una clase a (;).

    ase de obj

    un objeto, p

    butos para

    bles.

    ador que se

    signos debajo ( _ ). iciar con un

    que usa e

    , Nombre y

    ter despus

    e objetos.

    de objetos

    jetos se te

    por ejemplo

    la clase de

    e

    e

    n

    el

    y

    s

    s.

    e

    o

    e

  • La forma de declarar los atributos es la siguiente.

    Descripcin de los atributos:

    private:

    Es una palabra reservada, cuyo significado es privado, sirve para indicar al compilador que los atributos que se declaren despus de la misma sern de tipo privado, es decir, ningn mtodo (funcion) o programa podr asignar o modificar el contenido de un atributo, ni siquiera podr leer el contenido del mismo. Esta es una herramienta que permite proteger el contenido que guardan los atributos, para evitar la copia o modificacin indebida de informacin.

    string nombre; short num_asiento; float costo; float millas;

    En esta lnea de cdigo aparecen cuatro atributos,

    En esta lnea de cdigo se declararon cuatro atributos que describen las caractersticas de la clase de objetos Venta_de_boletos. Observa que cada uno de los atributos es capaz de almacenar un tipo de informacin especfica, por ejemplo el atributo llamado nombre es de tipo string por lo tanto es capaz de almacenar una cadena de caracteres, en este caso el nombre del comprador del boleto. Por otro lado el atributo num_asiento es de tipo short, el atributo costo es de tipo float al igual que el atributo millas, como puedes observar, deben de ser declarados del tipo correspondiente a la informacin que se quiere almacenar en cada uno de ellos.

    Anteriormente se menciono que elcomportamientodeunobjetoestdefinidopormtodosofunciones, estos son los nicos que pueden acceder a la informacin almacenada en losatributosdeunaclasedeobjetoseinclusomodificarla,losmtodosobtienenestepermisoalserdeclaradosydefinidosdentrode las llavesdeaperturaydecierre({y})de laclasedeobjetos.LasaccionesquerealizarlaclasedeobjetosllamadaVenta_de_boletossonlassiguientes:9 Asignarelnombredelcompradordelboleto.9 Obtenerelnombredelcompradordelboleto.9 Asignarelnmerodeasiento.9 Obtenerelnmerodeasiento.9 Asignarelcostodelboleto.9 Obtenerelcostodelboleto.9 Asignarelnmerodemillas.9 Quitarnmerodemillas.9 Obtenernmerodemillas.

  • Enseguidasemuestra la formadedeclararydefinir losmtodosquerealizaran lasprimerasdosacciones,esdecir:

    9 Asignarelnombredelcompradordelboleto.9 Obtenerelnombredelcompradordelboleto.

    Descripcin:

    public:

    Es una palabra reservada (su significado es pblico), sirve para indicar al compilador que los mtodos que se declaren despus de ella sern de tipo pblico, es decir, cualquier mtodo o programa podr invocar o utilizar dichos mtodos sin ninguna restriccin, pero solo se realizaran las acciones previamente declaradas en estos mtodos, es decir, el mtodo invocado solamente realizar el trabajo para el cual fue escrito.

    void Anom(string nom)

    void es una palabra reservada que indica que cuando se ejecute la declaracin de mtodo que la precede no va a devolver ningn valor.

    Anom( ) es la declaracin de un mtodo, dentro de los parntesis se pueden declarar argumentos, es decir variables.

    string nom es la declaracin de un argumento llamado nom de tipo string

    Despus se encuentran escritas las siguientes lneas de cdigo:

    {

    nombre = nom;

    }

    Como ya se menciono anteriormente las llaves de apertura y de cierre ({ y }) delimitan las lneas de cdigo que pertenecen al mtodo Anom(), en este caso solo es una lnea de cdigo.

    nombre = nom;

    Esta lnea de cdigo realiza la asignacin de informacin, es decir, el contenido que almacena el argumento llamado nom de tipo string (debe contener una cadena de caracteres, esta informacin se le asigna a este argumento desde otra funcin o programa) hacia el

  • atrib

    Ense

    strin

    {

    retu

    }

    Las termcaradecl

    retuel tipllamque la in

    deriv

    Notainfor

    TIPO

    Se ente

    Cadsoloun dde ecompara

    Cadcalif

    buto llamad

    eguida se e

    ng Onom()

    rn nombre;

    lneas de cminar de ejeacteres), polaro ningn

    rn nombre;po de dato

    mado Onomel mtodo

    nformacin

    Nota:

    Si latipo dla pal

    vado).

    a: para sabrmacin da

    OS PRIMIT

    les llama eros, tipos r

    Tipos en Tipos rea tipo prim

    o tiene dos determinadoellas y de s

    mo la plantilla cada tipo,

    a tipo de ficado signe

    o nombre d

    encuentran

    cdigo anteecutarse deor esta raz argumento

    esta lneaos de este am() se le ha

    llamado Oalmacenad

    a informacide datos, plabra reserv

    ber ms ando clic en

    TIVOS

    tipos primreales, el tip

    nteros: chareales: float,

    itivo tiene uvalores: truo programa

    si estos sonla numeric_ adems d

    entero pueed es un e

    del mismo t

    escritas la

    eriores son evolver unzn se le ao (variable)

    a de cdigoatributo es ya escrito nom() devu

    da en este a

    in que almpor ejemplovada int en

    acerca delo la palabra

    mitivos porqpo carcter

    r, short, int double y lo

    un rango diue y false. Ea dependern enteros o_limits definida actersticas

    alificado posigno; est

    siguiente im

    es lneas de

    cin y definiste valor sa palabra

    el contenidosable de quo el tipo deormacin ajustamente

    atributo llamces a la detring o cual

    e datos primRIMITIVOS:

    definidos pwchar_t y

    .

    valores podatos que sgo y tipo deios. Los ficen

    s.

    or las palato es, un v

    magen se ej

    e cdigo:

    icin del mer de tiporeservada

    o del atribuue a la dec datos strin

    almacenada de tipo str

    mado nombeclaracin dlquiero otro

    mitivos o

    por el comel tipo bool

    sitivos y nese seleccione valores qcheros de c> especifica

    bras clavevalor entero

    jemplifica e

    todo llamao string (esstring, a e

    to llamado claracin y ng y no otra en el atribing.

    bre hubiera del mtodoo tipo de da

    derivados

    pilador y s.

    egativos, exne para deue vayan a

    cabecera y ) dentro de

    mado nomo creado (eto, en este

    os llamadaue le van a

    main(), como

    tenecer a la

    uevo tipo depo de dato

    etos que leuvo un hijoas son: quem_asiento yos mtodos

    cdigo:

    e. pantalla la

    se recibirla variable

    mbre de tipoel hijo), esejemplo es

    a a o

    a

    e o

    e o, e y s

    a

    e

    o s s

  • el mtodo llamado Anom(), para poder invocarlo se utiliza al operador punto (.) de la siguiente forma: boleto1.Anom(NOM1); como puedes observar el contenido de la variable NOM1 de tipo string se pasa como argumento al mtodo Anom() al escribir entre los parntesis el nombre de la variable que contiene la informacin que se desea asignar al atributo, en este caso esta variable es NOM1. En la siguiente imagen ilustra la forma en que se realiza esta asignacin:

    El resultado de editar, depurar y compilar todo el cdigo fuente sera el siguiente:

    Para comprobar que se almacen correctamente la informacin introducida por el teclado, es decir el nombre SALOMON, se utilizar el mtodo llamado Onom(), el cual lee y devuelve el contenido que almacena el atributo llamado nombre de tipo string, declarado dentro de la clase Venta_de_boletos Enseguida se muestran las lneas de cdigo que realizan esta accin:

    En las lneas de cdigo remarcadas puedes observar que:

    Por medio del objeto boleto1 y el operador punto ( . ) se invoc al mtodo Onom() el cual lee y devuelve el contenido que almacena el atributo llamado nombre, esta informacin se almacena dentro de la variable llamada NOM2 de tipo string y posteriormente se imprime en pantalla por medio del objeto cout y su operador de insercin ( cout

  • introducida por el teclado efectivamente se asigno dentro del atributo llamado nombre por medio del mtodo Anom().

    El resultado de editar, depurar y compilar todo el cdigo fuente es el siguiente:

    Para que puedas ver el cdigo fuente con los elementos explicados hasta este punto da clic en el siguiente hipervnculo (Venta de boletos):

    Actividad de aprendizaje 2 Clases de objetos

    Ahora que conoces la forma de declarar y definir una clase de objetos a travs de la POO en un programa creado en Lenguaje C++, realiza la siguiente actividad, la cual tiene por objetivo que realices un programa escrito en Lenguaje C++ que implemente la declaracin de objetos, a partir de clases, utilizando la Programacin Orientada a Objetos. Adems de que pondrs en prctica el conocimiento que acabas de adquirir.

    Instrucciones:

    1. Edita el cdigo fuente del programa Venta_de_boletos que acabas de descargar y revisar, depralo y complalo en el compilador Dev C++

    2. Agrega los mtodos necesarios para que el objeto boleto1 sea capaz de realizar las siguientes acciones:

    Asignarelnmerodeasiento. Obtenerelnmerodeasiento. Asignarelcostodelboleto. Obtenerelcostodelboleto. Asignarelnmerodemillas. Obtenernmerodemillas.

    3. Debes enviar tu archivo hasta que haya sido compilado, es decir que Dev C++ no te haya marcado error, de lo contrario no se tomar esta actividad como vlida. El archivo que debes enviar es el cdigo fuente, es decir el archivo con extensin .cpp que se realiz.

    Cuando tengas listo tu archivo gurdalo en tu PC y envalo con tus datos en el siguiente formato: apellidopaterno_materno_nombre_actividadnumero

    Puedes apoyarte en el archivo ejecutable de este programa para que comprendas exactamente lo que tienes que hacer. Da clic sobre la palabra Ejecutable para que se te muestre el documento:

  • Para permitir que el objeto boleto1 realice la actividad de quitar millas, es necesario agregar un mtodo ms, mismo que se te explica a continuacin:

    9 Quitarnmerodemillas.El mtodo es el siguiente (observa las lneas de cdigo remarcadas):

    Descripcin:

    Como puedes observar este mtodo se llama Rmillas() y es de tipo void lo cual indica que este mtodo no devolver ningn valor al terminar de ejecutarse, este mtodo tiene declarado un argumento llamado rmilla de tipo float, el cual recibir la cantidad de millas que se quitaran, es decir la cantidad de millas que se restaran al atributo llamado millas del mismo tipo.

    Enseguida se encuentra entre las llaves de apertura ( { ) y cierre ( } ), la siguiente lnea de cdigo:

    millas = (millas - rmilla);

    Esta lnea de cdigo se encarga de restar al contenido del atributo llamado millas el valor que almacena el argumento milla, recuerda que ambos son de tipo float, el resultado de esta operacin aritmtica se guarda dentro de el mismo atributo llamado nombre.

    Para implementar este mtodo, es necesario declarar dos variables ms en la funcin principal main(), mismas que permitirn ingresar por el teclado el valor de las millas que deben quitarse, estas variables se presentan a continuacin:

  • Descripcin:

    Como puedes observan, en la ltima lnea de cdigo se declararon dos variables ms de tipo float sus nombres son MILLA3 y RMILLAS respectivamente, en la ltima lnea de cdigo.

    Anteriormente se mencion que para invocar un mtodo es necesario escribir su nombre y el nombre del objeto separados por el operador punto ( . ). Enseguida se muestra la forma de hacerlo.

    Descripcin:

    En este cdigo fuente se puede observar que se solicita introducir por el teclado el numero de millas a quitar (primer lnea de cdigo resaltada), esta informacin se almacena en la variable RMILLAS de tipo float, inmediatamente despus por medio de la lnea de cdigo: boleto1.Rmillas(RMILLAS); se realiza la resta declarada dentro del mtodo llamado Rmillas(),

    Para corroborar que efectivamente se realiz la resta aritmtica, enseguida se asigna el valor que devuelve el mtodo llamado Omillas(), que es el contenido del atributo millas, de la siguiente forma:

    MILLA3 = boleto1.Omillas();

    posteriormente se muestra esta informacin por pantalla por medio de la siguiente lnea de cdigo:

    cout

  • Ya que se mostr el resultado del cdigo fuente terminada, puedes verlo con todos sus elementos integrados, da clic sobre las siguientes palabras para que se te muestre todo el programa:

    Actividad de aprendizaje 3 Clases de objetos 2

    Es tiempo de seguir demostrando tus conocimientos, realiza la siguiente actividad, la cual tiene por objetivo que realices un programa escrito en Lenguaje C++ que implemente la declaracin de objetos, a partir de clases, utilizando la Programacin Orientada a Objetos. Adems de que pondrs en prctica el conocimiento que acabas de adquirir. Instrucciones:

    1. Escribe un programa escrito en Lenguaje C++ que declare una clase de objetos llamada CCuenta, esta clase debe describir a un objeto que emule a una cuenta bancaria, las caractersticas de esta cuenta bancaria son las siguientes:

    Nombre del cuentahabiente. Nmero de cuenta. Tipo de inters Saldo 3. las caractersticas anteriores deben estar definidas por atributos.

    4. La cuenta bancaria debe realizar las siguientes acciones.

    Asignarelnombredelcuentahabiente. Obtenerelnombredelcuentahabiente. Asignarelnmerodecuenta. Obtenerelnmerodecuenta. Asignareltipodeinters. Obtenereltipodeinters. Realizaruningresodeefectivo. Realizarunretirodeefectivo. Obtenerelsaldodelacuenta.Todos estos mtodos deben ser implementados (usados) dentro de la funcin main().

    5. Debes enviar tu archivo hasta que haya sido compilado, es decir que Dev C++ no te haya marcado error, de lo contrario no se tomar esta actividad como vlida. El archivo que debes enviar es el cdigo fuente, es decir el archivo con extensin .cpp que se realiz.

    Cuando tengas listo tu archivo gurdalo en tu PC y envalo con tus datos en el siguiente formato: apellidopaterno_materno_nombre_actividadnumero

    Puedes apoyarte en el archivo ejecutable de este programa para que comprendas exactamente lo que tienes que hacer. Da clic sobre la palabra Ejecutable 1 para que se te muestre el documento:

  • Se te invita a realizar una prueba sobre el programa Venta de boletos que se te acaba de explicar, aade tres lneas de cdigo despus del mtodo que quita nmero de millas explicado antes, con estas nuevas lneas de cdigo se solicitar revisar el contendido que almacena el atributo llamado millas, antes de agregar o quitar algn numero de millas, estas son las nuevas lneas que vas a agregar:

    Y esta es la ubicacin de estas dos lneas de en el cdigo fuente del programa .

    Como puedes observar despus de crear al objeto llamado boleto1 (el hijo) se invoco al mtodo llamado Omillas(), de esta forma: MILLA3 = boleto1.Omillas(); el resultado que devuelve este mtodo se guarda dentro de la variable llamada MILLA3 para posteriormente imprimir en pantalla el contenido de esta variable por medio del objeto cout y su operador de incisin ( cout

  • del mlos a

    2

    ComopercualformLengoper

    a = a

    mensaje deatributos de

    2.1 Constr

    mo has obsrativo asignl puede dar

    ma; int a; guaje C++ racin Cu

    a +1;

    e error que e la clase.:

    Nota: Rede objetosea decla

    ructor

    servado, alna automtr lugar a unel cual noson privadl sera el r

    mostrara e

    cuerda queos, es necearado dentr

    l declarar uticamente yn error. Poro puede sedos (prvateresultado q

    el depurado

    e para leer,esario hacero de las lla

    un atributoy en formar ejemplo, ser iniciado e:) si despuue se alma

    or del DEv C

    o modificaerlo por meaves que de

    o pero no da aleatoria si se declaral declarar

    us de declacenara de

    C++ si es q

    ar el contenedio de un elimitan el c

    definir el vun valor dra un atriburse ya quelarar este a

    entro del atr

    que se inte

    nido de los mtodo, s

    cuerpo de la

    alor que ael mismo tuto de tipo e los atribuatributo reaributo llama

    nta declara

    atributos deiempre y ca clase ( { y

    almacenartipo que el int llamado

    utos por dealizramos ado a?:

    ar e iniciar a

    e una clasecuando estey }; ).

    el sistemaatributo, lo

    o a, de estaefault en ela siguiente

    a

    e e

    a o a el e

  • No es posible determinar con certeza el valor que almacena este atributo ya que al valor que almacena el atributo a (que no sabemos que valor es) se le suma uno y el resultado de esta operacin se almacena dentro de a.

    La forma de evitar lo anterior es iniciando a, los atributos, el mtodo que el Lenguaje de Programacin C++ provee al programador para llevar acabo esta tares se denomina constructor.

    a) Definicin de constructor:

    Un constructor es un mtodo especial de una clase de objetos que es invocado (llamado) automticamente en el momento en que se crea un objeto de esa clase. La funcin de un constructor es iniciar (definir) los atributos de este objeto. El nombre de un constructor debe ser el mismo nombre que el de la clase de objetos a la que pertenece y no puede retornar ningn valor, ni siquiera se puede escribir antes del nombre del constructor la palabra reservada void.

    Por ejemplo, si aadieras a la clase de objetos llamada Venta_de_boletos un constructor, tendra que llamarse tambin Venta_de_boletos.

    Ahora bien, cuando a una clase de objetos no se le declara un constructor (escribir explcitamente un constructor), El Lenguaje C++ declara uno por omisin. (Esta operacin la realiza el depurador de el IDE que utilices para editar, depurar y compilar tu cdigo fuente). Por ejemplo, la clase de objetos llamada Venta_de_boletos, que has escrito anteriormente tiene por omisin un constructor declarado llamado Venta_de_boletos().

    Enseguida se te muestra un ejemplo de cmo se escribe la sintaxis para declarar un constructor:

    Descripcin:

    public:

    La definicin y caractersticas de esta palabra reservada, ya se te explicaron anteriormente, si tienes alguna duda revisa la explicacin de la clase de objetos del subtema anterior, ah la encontraras.

    Un aspecto muy importante de los constructores y que no debes olvidar es que cada constructor que declares debe de ser pblico para que pueda ser invocado por cualquier otra funcin o programa, adems, por omisin todos los constructores son de tipo pblico.

    Nombre_de_la_clase( )

    Recuerda que la declaracin del constructor de una clase de objetos, tambin es un mtodo, el nombre del constructor debe ser el mismo que el de la clase de objetos, dentro de los parntesis se pueden declarar argumentos, es decir variables.

    { (Llave de apertura) y } (Llave de cierre)

  • Como se te explic antes, las llaves de apertura y de cierre delimitan las lneas de cdigo que pertenecen al constructor.

    // Constructor vacio

    Esta lnea de cdigo es un comentario, lo referente a los comentarios ya se te explic antes.

    Ahora que conoces la sintaxis para declarar un constructor, se te mostrar cmo es que el Lenguaje C++ declara por omisin un constructor cuando no lo hace el programador.

    Las lneas de cdigo remarcadas muestran como quedara declarado automticamente el constructor por el Lenguaje C++.

    Pregunta para reflexionar:

    Si la clase de objetos llamada Venta_de_boletos posee un constructor por omisin y la funcin de los constructores es iniciar los atributos por qu se asign automticamente un nmero sin que t lo hayas tecleado cuando agregaste las siguientes lneas de cdigo?

    Cuyo resultado obtenido fue el siguiente:

    Respuesta:

    El resultado que se observa en la imagen anterior se debe a que el constructor declarado por el Lenguaje C++ que posee la clase de objetos llamada Venta_de_boletos esta vacio, por lo que el SO almacena un nmero aleatorio en el atributo llamado millas, en otras palabras el constructor no realiz ninguna accin, quien realiz la asignacin del nmero aleatorio fue el SO.

    Declaracin y Definicin de un constructor por el programador

    Para explicarte como se declara y define un constructor por parte del programador, se har un ejemplo que inicie los atributos de la clase de objetos llamada Venta_de_boletos por lo que es necesario aadir las siguientes lneas de cdigo al cdigo fuente del programa llamado Venta de boletos realizado anteriormente:

  • Se clasmillacdiobje

    Comllammtocont

    El re

    Comatribcero

    Nolet

    te invita ae_de_bolet

    as, antes digo necesaetos.

    mo puedes mado Omilla

    odo se guatenido de e

    esultado de

    mo puedes butos que do inmediata

    ota: Recutra f o F pa

    a realizar tos, el objee agregar o

    arias para

    observar das(), de esarda dentro sta variable

    e agregar es

    observar gdescriben lamente des

    Explicaci

    Como pueatributos fnombre fuentre las llamado npor ltimo

    erda que ara especific

    otra pruebetivo de eso quitar algrealizar es

    despus desta forma: de la varia

    e por medio

    stas lneas

    gracias a qas caracterpus de se

    n:

    edes obserfueron iniciaue iniciado c

    comillas dum_asientolos atributo

    al definir (incar que el v

    ba, toda vsto es solicgn numerosta operaci

    e crear al oMILLA3 =

    able llamado del objeto

    de cdigo

    que el consrsticas de ler creado el

    rvar, en laados adecucon una caobles () o fue iniciaos costo y m

    iciar) una vvalor asigna

    vez que elcitar el cono de millas.n. No olv

    objeto llama= boleto1.Oa MILLA3

    o cout y su

    y el constru

    structor llamla clase, ah objeto llam

    s lneas deuadamente dena de cano hay unado con cemillas fuero

    variable de ado es de t

    l constructntendido qu La siguien

    vides inclui

    ado boletoOmillas();

    para posteoperador d

    uctor al pro

    mado Ventahora el atribmado boleto

    e cdigo rede acuerd

    aracteres en espacio eero, es decon iniciados

    tipo float eipo floar y n

    tor inici aue almacennte imagen ir el constr

    1 (el hijo)el resultad

    eriormente e incisin (

    ograma es e

    a_de_boletbuto llamado1.

    emarcadaso a su tipon blanco, oen blanco. ir almacena

    s con cero p

    es necesariono de tipo d

    a los atribna el atribumuestra la

    ructor de l

    ) se invocodo que devimprimir en( cout

  • Ense

    2.2 D

    Ya sconsun ecrease indestRAM

    Un autode lasigdebenomretoreseobje

    Ahoun cel IDllamllam Ense

    duda

    eguida pue

    Destructor

    se ha menstruye un oespacio en ado el espanvoca autotructor y suM.

    Definicidestructor

    omticamena computa

    gnado a un e ser el mi

    mbre se le rnar ningn

    ervada voidetos llamada

    No

    Lacopr

    ra bien, cuconstructor)DE que utili

    mada Venta_mado ~Venta

    eguida se t

    a. l

    edes desca

    ncionado qobjeto de un

    la memoriaacio asignadomticamenu funcin p

    n de destr

    es un mnte antes dedora. La fuobjeto, cuasmo nombdebe escrn valor, ni d. Un ejema Venta_de

    ota:

    a tilde (~) qomo el opresionando

    uando a una), El Lenguaces para e_de_boletoa_de_bolet

    te muestra

    rgar el prog

    ue existe na clase (ca RAM pardo por el Snte cada veprincipal es

    ructor:

    mtodo espe que un obuncin de uando este obre que el dribir antes

    siquiera smplo de ce_boletos u

    que se escperador colas teclas A

    a clase de aje C++ deditar, depu

    os, que has tos().

    un ejemplo

    grama Vent

    un mtodoconstructor)ra almacenSO en la meez que se ds la de libe

    pecial de bjeto de esun destructobjeto ya node la claseuna tilde (se puede emo se deb

    un destructo

    cribe antes omplementoALT + 126.

    objetos noeclara uno prar y compescrito ant

    o de cmo s

    Des

    pub

    La ya revDis

    ta de boleto

    o que se e), como recar a este oemoria RAMdestruye un

    erar el espa

    una clase a clase seator es libero es necesde objetos

    ~), un desescribir antbe nombra or, tendra q

    del nombro a uno. .

    o se le declpor omisinpilar tu cdigteriormente

    se escribe l

    scripcin:

    blic:

    definicin yse te explicisa la expliseo de un

    os con el c

    ejecuta autocordaras al objeto, cuanM debe sen objeto. Eacio utilizad

    de objetoa eliminadorar (borrar) sario que exs a la que structor no tes del nomun destru

    que llamars

    re del consLa forma

    lara un conn. (Esta opego fuente).

    e tiene por o

    la sintaxis p

    y caracterscaron anteicacin de na clase de

    constructor.

    omticamecrearse un

    ndo ya no eer liberado, Este mtododo por un

    os que eso fsicament

    el espacioxista. El nopertenece,posee arg

    mbre del cctor: si aa

    se ~Venta_

    structor no de obten

    nstructor (eeracin la re

    Por ejempomisin un

    para declar

    sticas de esriormente, la clase de

    e objetos,

    ente cada vn objeto, eles necesarexiste un m

    o recibe el objeto en

    s invocadote de la meo en la membre de un adems d

    gumentos yconstructor adieras a _de_boletos

    debe ser iner este s

    escribir expealiza el de

    plo, la clasedenstructo

    rar un destr

    sta palabrasi tienes a

    e objetos dah puedes

    vez que se SO asignario el objetomtodo quenombre dela memoria

    o (llamadoemoria RAMmoria RAMn destructode que a suy no puede

    la palabrala clase des

    nterpretadasmbolo es

    plcitamenteepurador dee de objetosor declarado

    ructor:

    a reservadaalguna dudadel subtemas aclarar tu

    e a o e e a

    ) M M r u e a e

    a s

    e e s o

    a, a a u

  • Un aspecto muy importante de los destructores y que no debes olvidar es que cada destructor que declares debe de ser pblico para que pueda ser invocado por cualquier otra funcin o programa, adems, por omisin todos los destructores son de tipo pblico.

    ~Nombre_de_la_clase ( )

    Recuerda que la declaracin del destructor de una clase de objetos, tambin es un mtodo, el nombre del destructor debe ser el mismo que el de la clase de objetos, no olvides escribir antes la tilde (~), dentro de los parntesis no se pueden declarar argumentos ni se le puede anteponer la palabra reservada void.

    { (Llave de apertura) y } (Llave de cierre)

    Como se te explic antes, las llaves de apertura y de cierre delimitan las lneas de cdigo que pertenecen al destructor.

    // Operaciones a desarrollar

    Esta lnea de cdigo es un comentario, lo referente a los comentarios ya se te explic antes.

    Declaracin y Definicin de un destructor por el programador Para explicarte como se declara y define un destructor por parte del programador, se har un ejemplo que borre el contenido de los atributos de la clase de objetos llamada Venta_de_boletos por lo que es necesario aadir las siguientes lneas de cdigo al cdigo fuente del programa llamado Venta de boletos realizado anteriormente:

    Explicacin:

    Como puedes observar, en las lneas de cdigo remarcadas, todos los atributos fueron reiniciados adecuadamente de acuerdo a su tipo, el atributo nombre fue reiniciado con una cadena de caracteres en blanco, observa que entre las comillas dobles () no hay un espacio en blanco. El atributo llamado num_asiento fue reiniciado con cero, es decir almacena un cero y por ltimo los atributos costo y millas fueron reiniciados con cero punto cero, recuerda que. por tratarse de variables de tipo float es necesario escribir una letra f o F para indicar explcitamente al compilador que en verdad se trata de una variable de tipo float, de lo contrario ser interpretada por el compilador como una variable de tipo doubl.

    Se te invita a seguir practicando lo que se te ha explicado en esta unidad temtica, integra las lneas de cdigo al programa que ya venas trabajando toda vez que se aadieron las lneas de cdigo que declaran y definen al destructor de la clase Venta_de_boletos, el objetivo de esto es reiniciar los

  • atributos antes de eliminar fsicamente el objeto de la memoria RAM de la computadora. El siguiente archivo muestra el cdigo fuente completo que realiza lo explicado anteriormente, da clic sobre la palabra Destructor para que se despliegue el programa.

    Explicacion del destructor en el cdigo fuente:

    Las lneas de cdigo remarcadas en rojo, se agregaron dentro de la funcin main() observa el siguiente cdigo fuente:

    Como puedes observar despus de crear al objeto llamado boleto1 (el hijo) se invoco a todos los mtodos de este objeto uno por uno (esto ya se haba explicado anteriormente). Despus se coloco la funcin system(PAUSE); para realizar una pausa en la ejecucin del programa se invoco en forma explcita al destructor de la clase llamado ~Venta_de_boletos(); con lo cual se reiniciaron todos los atributos e inmediatamente despus se elimino fsicamente el objeto boleto1 de la memoria RAM de la computadora.

  • El resultado de agregar estas lneas de cdigo y el constructor al programa es el siguiente:

    Como puedes observar gracias a que el destructor llamado ~Venta_de_boletos() dentro de su llave de apertura y de cierre (observa el programa completo) tiene declarada la lnea de cdigo siguiente:

    cout

  • 3. E

    Intro

    HasC++quEl Lagruideniden

    Unapuedmtoclasser objese lemtocomlos m

    Un erelat

    El nombpertenecconstruc

    Un destautomtmemoria

    La funcicuando

    El nombpertenecno posenombre

    Estructuras

    oduccin:

    ta este mo+ de esta u pasa cua

    Lenguaje deupar cualquntificador, pntificador (n

    Definicia estructuraden generaodos que des, en las de diferen

    etos con lases llama miodo o func

    mo consecuemiembros d

    Nosecaes

    ejemplo mutivos a una

    Nombre

    bre de un coce y no puector la palatructor es uticamente aa RAM de lin de un deste objeto

    bre de un dce adems

    ee argumendel constru

    omento todunidad de aando es nee programauier nmerpermitiendoombre).

    n de estru

    a al igual qar objetos, definen lasestructuraste tipo de

    s nicas difiembros enin puede encia de esde una estr

    ota: Tanto e nombran aracteristicastrcutura.

    uy tpico papersona, c

    onstructor dede retornaabra reservaun mtodoantes de qa computaddestructor

    o ya no es ndestructor ds de que antos y no puuctor la pal

    as las variaprendizajeecesario deacin C++ ro de vario con esto

    cturaEstruc

    que una clya se ha

    s caracterss se puede

    datos, tamerencias d

    n lugar de aacceder al

    sto ya no esuctura.

    los atributode diferen

    as de una

    ara aplicar ucomo los sig

    debe ser elar ningn vaada void.

    o especial dque un obdora. es liberar

    necesario qdebe ser el su nombre

    uede retornlabra reserv

    ables que e permiten clarar una provee al

    ables (auno manipula

    cturas:

    ase de objmencionad

    sticas y comalmacenar

    mbin puedde que las vatributos y e contenido s necesario

    os como losnte manera

    clase y u

    una estrucguientes:

    l mismo noalor, ni siqu

    de una clabjeto de es

    (borrar) el que exista.

    mismo nome se le debar ningn vvada void.

    has utilizadalmacenar gran cantidprogramad

    nque estasar una gra

    bjetos repredo que esmportamienr ms de uden realizavariables questos son p

    que almaco declarar y

    s miembrospara difer

    na variable

    tura es una

    ombre que euiera se pue

    ase de objesa clase s

    espacio en

    mbre que ebe escribir avalor, ni siq

    do en los un dato d

    dad de vardor una hes sean de an cantidad

    esenta unatos objetosnto de dich

    una variablear las mismue definen

    pblicos porcenan las ey definir m

    describen renciar entre que desc

    a ficha de i

    el de la clasede escribir

    etos que eea elimina

    n la RAM a

    el de la clasantes una t

    quiera se pu

    programas de un solo riables y toerramienta

    diferente d de varia

    plantilla, as heredan hos objetose (atributosmas accion

    las caracter default, poestructuras todos para

    las caractere una varicribe las c

    nformacin

    se de objetr antes del

    es invocadoado fsicam

    asignado a

    se de objettilde (~), unuede escrib

    escritos etipo de vadas de difesencilla y tipo) bajo

    ables bajo

    a partir detodas las

    s. Al igual s) mismas qes que un

    ersticas deor lo anterioe incluso

    acceder o

    eristicas deable que d

    caracteristic

    n, que alma

    tos a la quenombre de

    o (llamadomente de la

    a un objeto

    tos a la quen destructobir antes de

    n Lenguajeriable, peroerente tipo?eficaz paraun mismoun mismo

    la cual sevariables yque en las

    que puedenna clase de los objetosor cualquiemodificarlomodificar a

    un objeto ydescribe lascas de una

    acena datos

    e el

    ) a

    o,

    e r

    el

    e o ? a o o

    e y s n e s r

    o, a

    y s a

    s

  • La s

    { (L

    La lobje

    publ

    Es miem

    Direcci Telfono Fecha d

    Noesm

    sintaxis para

    No

    admiracEl nombcon un nNo se pcompiladEl LengNOMBRLos nomdespus

    Llave de ape

    lave de apetos.

    lic:

    una palabrmbros que

    n

    o

    de nacimien

    ota muy imstructura. P

    miembros d

    a declarar u

    ota: Para d

    Se puSe puNo s

    cin o de intbre de una nmero. pueden utidor, por ejeuaje C++ d

    RE, son tresmbres de ls de otro sin

    ertura)

    pertura ind

    ra reservadse declare

    nto.

    mportante! Por ejempla, mes y a

    una estruct

    Descrip

    struct: para inobjetos

    nombre

    ar nombre

    eden utilizaeden utiliza

    se puedenterrogacinestructura

    lizar comoemplo: for, mdistingue es nombres dlas estructn espacios

    dica el inici

    da (su sigen despus

    : Los mieo, la fechao.

    tura es la si

    pcin:

    Es una pandicar al cos.

    e_de_la_es

    a las estru

    ar casi todaar los nme utilizar c

    n, etc.,) el se puede

    o nombres main, do, wntre maysde estructuuras debenentre ellos

    io de las l

    nificado ess de la mism

    mbros de a de nacim

    iguiente:

    alabra reseompilador q

    structura: E

    cturas se d

    as las letraseros del 0 acaracteres nico carctformar con

    de estructwhile, etc. sculas y mras distintan ser cade.

    neas de c

    s pblico), ma sern d

    una estrucmiento, pod

    ervada (su que se est

    s el nombre

    deben segu

    s del alfabeal 9.

    especialeter que es an nmeros y

    turas las p

    insculas. as. enas de ca

    digo que

    sirve parade tipo pb

    ctura puededra ser un

    significadot declaran

    e de la estr

    ir las siguie

    eto, excepto

    s (puntos,aceptado esy letras pe

    palabras re

    Por lo tant

    aracteres,

    pertenecen

    a indicar ablico, es de

    en ser a sna estructu

    o es estrucndo una es

    ructura.

    entes reglas

    o la .

    , comas, s el guin bro no se pu

    eservadas

    to: nombre

    es decir, u

    n a una es

    al compiladecir, cualqu

    su vez otraura con los

    ctura), sirvestructura de

    s:

    signos debajo ( _ ). uede inicia

    que usa e

    , Nombre y

    un carcte

    structura de

    dor que losier mtodo

    a s

    e e

    e

    r

    el

    y

    r

    e

    s o

  • (funcin) o programa podr leer, asignar o modificar el contenido de un miembro,. Esta es una herramienta que permite acceder al contenido que guardan los miembros, en forma sencilla.

    }; (Llave de cierre)

    La llave de cierre indica el final de las lneas de cdigo que pertenecen a una estructura de objetos y siempre termina con el operador punto y coma (;).

    Ahora que se te mostraron los elementos bsicos que conforman una estructura de objetos se te explicar cmo se pueden elaborar los miembros de la misma. La declaracin de miembros dentro de una estructura describen las caractersticas de un objeto, por ejemplo su tamao, color, textura, forma, etc. Continuando con la explicacin, para el ejemplo se proponen los siguientes miembros para la estructura de objetos llamada ficha. Nombre. Direccin. Telfono. Recuerda que todos los miembros en la estructura de objetos son definidos por variables.

    La forma de declarar los miembros es la siguiente:

    Descripcin:

    Observa que en la declaracin de los miembros de la estructura llamada ficha no se coloc el modificador public: explicado anteriormente, esta omisin no causar ningn error al depurar y compilar el cdigo fuente de este programa, ya que aunque el programador no escribe este modificador los miembros de una estructura son tratados por el compilador como pblicos.

    Si el programador desea escribir explcitamente el modificador public: para los miembros de la estructura, la declaracin quedara de la siguiente forma:

    Continuando con la explicacin del cdigo fuente, despus de la llave de apertura se muestran las siguientes lneas de cdigo:

    string nombre;

    string direccion;

    long telEfono;

    En estas tres lneas de cdigo aparecen tres miembros que describen las caractersticas de la estructura de objetos llamada ficha. Observa que cada uno de los miembros es capaz de almacenar un tipo de informacin especfica, por ejemplo los atributos llamados nombre y direccin son de tipo

  • string por lo tanto almacenan, cada uno, una cadena de caracteres, en este caso el nombre de una persona y su direccin, por otro lado, el atributo telefono es de tipo long y guarda nmeros enteros. Como puedes observar, deben de ser declarados del tipo correspondiente a la informacin que se quiere almacenar en cada uno de ellos.

    Anteriormente se menciono que debido a que los miembros de una estructura se declaran de tipo pblico, ya no es necesario declarar y definir mtodos para leer, asignar o modificar el contenido de un miembro.Tambinsemencionoqueunmiembrodeunaestructurapuedeserasuvezotraestructura,paraaplicarestoltimosedeclararunmiembromsllamadofecha_nacimiento,el cual ser una estructura que contenga tres miembros de tipo short: da, mes y aorespectivamente, estos miembros contendrn la informacin referente a la fecha denacimientodeunapersona.Enseguidasemuestracomohacerlo:

    Explicacin: Como puedes observar en el cdigo fuente anterior se encuentran declaradas dos estructuras, fecha y ficha respectivamente, la estructura llamada fecha tiene declarados tres miembros de tipo short llamados dia, mes y anio, los cuales almacenarn la informacin referente a la fecha de nacimiento de una persona.

    La estructura llamada ficha tiene declarados cuatro miembros de los cuales los primeros tres ya han sido explicados anteriormente, el cuarto miembro llamado fecha_nacimiento es de tipo fecha, es decir, el miembro no pertenece a ningn tipo de dato primitivo, por el contrario pertenece a un tipo de dato derivado, declarado por el programador previamente, este tipo de dato derivado es el nombre de la estructura fecha. Por lo anterior se puede afirmar que el miembro llamado fecha_nacimiento es a su vez una estructura de tipo fecha.

    Toda vez que se ha declarado una estructura es posible declarar variables del mismo tipo que el de la estructura, todas estas variables heredaran los miembros de dicha estructura, en otras palabras, las estructuras declaradas pueden tener hijos y estos hijos heredaran las caractersticas de su mama en este caso la estructura de la cual son declarados. La forma de declarar variables para una estructura es la siguiente:

  • muc

    Noyta

    chaatenci

    ota:Paraen el obje

    ambin den.

    Explic

    Como las drespecse dectipo fitelfonfecha_tanto sobjeto anio, preferen

    tantotambi

    poderalmeto llamad tipo ficha

    Acc

    Pardecualospor

    A cmie

    acin:

    puedes obdos estrucctivamenteclararon doicha por lno, dia, _nacimientoser capaz llamado Lpor lo tantonte a la fec

    Notael oLiliadecl

    enelsiguindetipo

    macenarlado Lilianaa, esto m

    cesoalosm

    a accederuna estrulquier funmiembrosrmediode

    continuaciembros:

    bservar en cturas expy dentro de

    os objetos, o tanto hmes y

    o, que coz de almacLiliana hero solament

    cha de nacim

    a:Parapoobjeto llamna ser naradotamientecdigoficha.

    amismainsera necismo se h

    miembrosd

    y almaceuctura bascinoprosdeunaelmodificad

    n se mu

    el cdigo fplicadas ae la funcinGerardo y

    heredo los anio alm

    omo recordcenar toda redo nicamte ser capmiento de u

    oderalmacmado Geranecesariombindetigofuentee

    nformacinesario quehar en el

    deunaest

    nar informsta con rograma,esestructuradorpublic:

    estra la f

    fuente se eanteriormenn principal dLiliana, el miembros

    macenadosdaras es usu informa

    mente los paz de almuna person

    cenarlamardo y enque el opoficha,aelobjetoL

    nenelobje este ltisiguiente

    tructura.

    macindenealizar unstonicamsondeclar:

    orma de

    encuentran nte, fechadel programprimero se

    s: nombre,s en el una estructacin. Por

    miembros acenar la a.

    mismainforn el objetobjeto LiliasserealiLilianaser

    etollamadimo fueracdigo fu

    ntrodeunna asignacmente serradoscom

    realizar e

    declaradasa y fichama (main( ) declar de, direccion

    miembrotura, por losu parte edia,mes y

    informacin

    rmacinento llamadoiana fuerazarporlodeclarado

    doGerardodeclarado

    uente, pon

    nmiembrocin desdeposible smopblicos

    l acceso a

    s a ) e n, o o el y n

    noaoo

    oon

    oesis

    a

  • Explicacin:

    Como puedes observar en la lnea de cdigo:

    Gerardo.nombre = "GERARDO";

    Se realizo una asignacin, en la cual se est almacenando la cadena de caracteres GERARDO dentro del miembro llamado nombre de tipo string del objeto Gerardo a travs del operador punto (.).

    Si fuera necesario introducir el nombre de la persona a travs del teclado de la computadora, se ocupara el objeto cin y su operador de extraccin (>>) y para corroborar que se almaceno la informacin correctamente se tendra que imprimir en pantalla el contenido del miembro llamado nombre del objeto Gerardo, para lo cual se utilizara el objeto cout y su operador de insercin (

  • almaceno una cadena de caracteres, desde el teclado de la computadora, en el miembro llamado nombre de tipo string del objeto llamado Gerardo.

    Para mostrar el contenido que almacena el miembro llamado nombre se utiliza nuevamente el objeto cout y a su operador de insercin de cmo se muestra en la siguiente lnea de cdigo:

    cout

  • Explicacin:

    Para poder almacenar informacin en un miembro que es a su vez una estructura es necesario escribir el nombre del objeto y los nombres de ambos miembros de las dos estructuras, de esta forma:

    Gerardo.fecha_nacimiento.dia;

    El resultado de editar, depurar y compilar el cdigo fuente anterior es el sihuiente:

    Actividad de aprendizaje 4 Estructuras.

    Ya sabes cmo declarar y definir una estructura de objetos a travs de la POO en un programa creado en Lenguaje C++, ahora realiza la siguiente actividad, la cual tiene por objetivo que construyas software eficiente para dar solucin a problemas de ingeniera a travs de la declaracin e implementacin de estructuras y uniones. Instrucciones:

    1. Escribe un programa escrito en Lenguaje C++ que declare dos estructuras de objetos una llamada ficha, esta estructura describe a un objeto que emula a una agenda personal, las caractersticas de esta agenda personal son las siguientes:

    Nombre. Direccion. Telefono Fecha de nacimiento 2. Las caractersticas: Nombre, Direccin y Telfono deben estar definidas por miembros y la agenda personal debe permitir realizar las siguientes acciones.

    Asignarelnombredeunapersona. Obtenerelnombredeunapersona. Asignarladireccindeunapersona. Obtenerladireccindeunapersona. Asignareltelfono. Obtenereltelfono. Asignarlaedaddeunapersona. Obtenerlaedaddeunapersona.Todas estas acciones deben ser implementadas (realizadas) desde la funcin main() del programa..

  • 3. La fecha de nacimiento debe estar representada por tres miembros pertenecientes a otra estructura llamada fecha, esta estructura debe tener a los miembros dia, mes y anio de tipo short que almacenaran la informacin referente a la fecha de nacimiento de una persona, por lo que el miembro fecha de nacimiento ser a su vez una estructura.

    4. Debes enviar tu archivo hasta que haya sido compilado, es decir que Dev C++ no te haya marcado error, de lo contrario no se tomar esta actividad como vlida. El archivo que debes enviar es el cdigo fuente, es decir el archivo con extensin .cpp que se realiz.

    Cuando tengas listo tu archivo gurdalo en tu PC y envalo con tus datos en el siguiente formato: apellidopaterno_materno_nombre_actividadnumero

    Puedes apoyarte en el archivo ejecutable de este programa para que comprendas exactamente lo que tienes que hacer.

    Conclusin:

    Una estructura al igual que una clase de objetos representa una plantilla, a partir de la cual se pueden generar objetos, a las variables que definen las caractersticas de los objetos se les llama miembros en lugar de atributos y estos son pblicos por default, por lo anterior cualquier mtodo o funcin puede acceder al contenido que almacenan las estructuras e incluso modificarlo, como consecuencia de esto ya no es necesario declarar y definir mtodos para acceder o modificar a los miembros de una estructura.