Upload
luis-jose-narvaez-ocana
View
42
Download
8
Embed Size (px)
DESCRIPTION
nose
Citation preview
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
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.