Вы находитесь на странице: 1из 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.
• Lenguaje de progra
amación C+
++

C+++ es un len nguaje de programacción orienta ado a obje etos, diseñaado en el año 1980 por Bjarne e
oustrup. Es una extensión (mejora) del leng
Stro guaje de prrogramacióón C. Una particularid
p ad del C++
+
es laa posibilida
ad de redeffinir los operadores (ssobrecarga
a de operad dores), y de poder crrear nuevoss
tiposs que se coomporten co
omo tipos fundamenta
f ales (tipos derivados).
d

• Program
mación Orie
entada a Ob
bjetos

La Programaci
P ón Orientada a Objettos o POO es un para adigma de programacción que ussa objetos y
sus interaccion nes, para diseñar applicacioness y program
mas inform
máticos. Esstá basado
o en variass
técn
nicas, incluyendo here encia, abstracción, polimorfismo
p o y encapssulamiento. Su uso comenzó a
princcipios del año
a de 199 90.

Toolo tip: Paradigma de


d program mación: Un
n paradigm
ma de proogramación
n es un método
m de
e
prog
gramación que
q es adooptado por una
u comunidad de pro
ogramadore
es.

Nota importan
nte:

No confundass los Lenguajes C y C ++, ya que este últim


mo es una mejora
m del lenguaje C
y su modelo de
d programación es orrientado a objetos.
o

Aquí acaba la
a nota

¿Qu
ué es un ob
bjeto?

En la Programación Orien ntada a Ob bjetos (POO O), un objetto se definee como la unidad
u (cód
digo fuente)
e)
que representa a y realiza las
l accione es de un objbjeto de la vida
v real, en
n otras palaabras, un objeto
o es unn
proggrama escrito en Leng guaje C++ que
q represe enta las carracterísticas (atributoss) y el compportamiento o
de un
u objeto, por ejemplo si un prrogramadorr quiere realizar un código c fuennte que controle a un n
autoomóvil, el “iimaginará” y “verá” el código fueente de estte programa a como si fuese
f un auto (objeto)
por lo tanto esste objeto poseerá
p ca
aracterística
as que lo particulariza
p an es decirr propieda ades que lo o
haceen ser un auto, esta as caracterrísticas en el código fuente de el programa a están de efinidas por
varia
ables, por ejemplo
e la marca de un automóvil se pued de almacen nar en una variable de e tipo string
g
capaaz de almacenar una cadena de caracteress, el modelo o es posiblee almacena arlo en una variable de e
tipo short que almacena
a números
n de
e tipo enteroo.

Así mismo, un n auto pos see un comportamiento propio, por ejem mplo al arra
ancar, al cambiar
c de
e
ocidad y al frenar,
velo f etc. la forma de definir en
n el código fuente de un
u program
ma escrito en
e Lenguajee
C+++ el comporrtamiento de o es a través de métod
e un objeto dos (funcion
nes)

Es posible
p que
e los objetos (program
mas) interacctúan entre sí (con estto se puede
en generarr programass
máss complejoss), recibienndo mensaajes (informmación a través
t de los
l argumeentos de un
u método)
interrpretando esta
e inform
mación y ejjecutando una o máss accioness vinculada as a este mensaje,
m lo
o
anteerior con el
e propósitoo de llevarr a cabo con
c éxito la
a tarea paara la cual ha sido realizado
r e
el
proggrama.

Com
mo ya sabees, el códig
go maquina
a es muy difícil
d de in
nterpretar para
p una pe
ersona, por lo que ess
nece
esario imp
plementar una
u herramiienta que se
s encargue e de traduccir un Lenguaje de Pro
ogramaciónn
a có
ódigo maquuina, a este
e trabajo de
e traducción
n se le llama compilar un program
ma, trabajo que realiza
a
un compilador.
c

¿Qu
ué es un Co
ompilador?

Es un
u programma informático que tradduce un pro
ograma esccrito en un lenguaje de programa ación a otro
o
guaje que generalme
leng ente es el lenguaje máquina (ceros
( y unos),
u pero
o también puede ser
simp
plemente te
exto. Generrando un prrograma eqquivalente que
q la máquina será capaz
c de in
nterpretar. A
este
e proceso de traducció
ón se conocce como co
ompilación.

Exissten diferen
ntes compiladores como Turbo C++, Borla and C++ y GCC pero o en el prooceso de la
a
proggramación no se necesita solam mente un compilador,
c , también es necesa ario un pro
ograma que e
permmita editar el código fuente
f (esccribir el cód
digo fuente), otro que
e se encarggue de deppurarlo (que
e
encuuentre errores en el cóódigo fuentte para que e pueda serr compiladoo correctam
mente) y un compilador
que se encargue de traducir el código fuente a código maquina,
m siin embargo
o hay prog gramas quee
cuenntan con estas
e tres herramienttas de programación,, a los cua ales se lees conoce como IDE E
(Enttorno de Desarrollo Inntegrado o por su sig es:. Integra
gla en ingle ated Develoopment Ennvironment)),
cabee menciona ar que en esta unidad de aprendiizaje se utilizará el IDEE Dev C++

Com
mo se te me encionó, esste IDE se va a utiliza
ar en esta unidad
u de aprendizaje
a e, si no cue
entas con é
él
obse
erva el sigu
uiente video
o, el cual te
e mostrará como
c descaargarlo e in
nstalarlo en tu computa
adora:

Este
e video tutorial lo
o puedess encontra
ar en y
you tuve, con el siguiente
e nombre
e:

DEEV_ESIM
ME_TIC
COMAN_wm
mv 
O tecleando en el buscador de you tube
e: INGEAVILLES

Nota importa
N ante: Es muy importan nte que desscargues este IDE ya que a lo largo de toda
a
la
a unidad de
e aprendizaaje se utiliza
ará para rea
alizar los prrogramas que
q generarrás.

1.1 Estructura general de


e un programa escrito en Lengua
aje C++

A loo largo de este aparttado conoccerás la esttructura ge eneral de un programa a escrito en Lenguaje
e
C+++ y se te exxplicará dettalladamentte el trabajo que realiza cada un na de las lííneas de cóódigo de un
n
prog
grama escrito en este Lenguaje de d Program mación, se te explicann las diferenntes herrammientas con
n
que cuenta el Lenguaje C++ C para enviar
e y re
ecibir inform
mación tantto a la salidda como a la entradaa
está
ándar de la computado ora.

Se te
t invita a re
edoblar esffuerzos y a poner todaa tu atenció
ón ya que la
a información que a continuaciónn
se muestra
m te será de grran utilidad para la realización de todos loss programaas que efecctuaras a lo
o
largoo de esta unidad
u de aprendizaje..

Tu primer
p programa en lenguaje C++
+: “Hola mu
undo”

e curso anterior apren


En el ndiste a pro
ogramar en
n lenguaje C
C, ahora lo aprenderá
ás a hacer en
e lenguaje e
C++
+, lo primero que vas a conoccer es la estructura
e d un prog
de grama esccrito en estte lenguaje
e
mediante un código fuente muy sencillo que muestra en pantalla un mensaje con el texto “Hola
mundo” y posteriormente se te hará la explicación 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 continuación se te muestra una imagen que muestra el resultado de editar, depurar y compilar el
programa “Hola mundo”.

• Código fuente del programa “Hola Mundo”

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

Este es el código fuente del programa “Hola mundo”:

A continuación se explica cada una de las líneas de código que lo componen, pon mucha atención.

#include <iostream>

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 librería, (en el caso del ejemplo se utilizó iostream, (nota que ya no es necesario utilizar la
extensión.h como en el Lenguaje C ) Generalmente es esta directiva la que se incluye al iniciar un
código fuente porque en ella se encuentran declaradas las funciones más básicas, por ejemplo: las
funciones aritméticas que te permitirán sumar, restar, multiplicar o dividir números y las funciones
necesarias para mostrar datos por la pantalla o solicitar información por el teclado, no obstante
existen otras directivas, mismas que se te explicarán posteriormente.

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

Repasando: ¿Qué es una librería?.

Una librería 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 librería cmath, que es la librería dentro de la
cual está declarada y definida la función 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 librerías estándar 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 librería, esto puede provocar
errores muy difíciles de diagnosticar, para solucionar esta situación en el Lenguaje C++ todas las
declaraciones estándar se han puesto en el espacio de nombres std, por lo que al utilizar esta
instrucción se podrán declarar variables o funciones con cualquier nombre, aun cuando estos
nombres ya se hayan utilizado antes en las declaraciones de las librerías, 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 función llamada main( ) para poder
ser catalogados como un programa, si el código fuente no tiene declarada y definida esta función se
puede considerar como una librería o simplemente código.

La función principal main( ) es la primera en ejecutarse. La palabra int que tiene al principio indica
que, cuando la función main( ) finalice, esta devolverá un número, 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 algún error durante la ejecución del programa.

{ (Llave de apertura)

La llave de apertura delimita el inicio de las líneas de código que pertenecen a una función.

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

/ / (Comentario)
Estoo es un com
mentario y non se ejecuuta, sirve pa
ara describ
bir el progra
ama. Se te recomiend da comentar
el có
ódigo fuentte, esto te ayudara a recordar más
m tarde el e funcionam miento del programa, o si alguna
a
otra persona le
ee tu códigoo fuente lo va
v a poder entender fá ácilmente auxiliándose
a e de estas notas.

Cuaando el com
mpilador dettecta el ope
erador // (d
dos diagona ales) ignora
a todo lo qu
ue este desspués de él,
y ún
nicamente sirve
s para escribir
e un comentario
c en una líne
ea.

Para
a escribir un
n comentarrio que aba
arque más de
d una línea
a se puede
e realizar lo siguiente:

/* Este
E es un comentario
c o

que
e ocupa dos filas */

Reccuerda que es necesa ario colocarr el operad


dor /* (diag gonal asterrisco) para indicar al compilador
dondde comienzza el comen
ntario y el operador
o *// (asterisco
o diagonal) para indica
ar dónde termina.

coutt << "Hola mundo"<<


m endl
e ;

Esta
a línea de código
c realliza una accción que se
s puede ve
er al ejecuttar el progrrama, en este
e caso e
el
mennsaje “Hola mundo”.

coutt es un ob bjeto que en conjunto con el operador de inserció ón (<<) se n de sacar


e encargan
inforrmación por la salida estándar
e de
e la computtadora (pan
ntalla).

Todo
o lo que se
e escribe de
entro de lass comillas dobles
d (“ ”) se
s interpretta como una cadena de
d texto.

Después de laas comillas dobles ( “ ” ) se encuentra el operador de


d inserció
ón (<<) que
e separa la
a
cade
ena de textto y la sente
encia endl

end
dl , es una sentencia
s de
d escape que
q da un salto
s de líne
ea, es decirr, un enter.

systtem ("PAUS
SE");

Esta
a función occasiona que el prograama haga unau pausa en e su ejecu ución y es la
l responsaable de que
e
en pantalla
p se muestre laa cadena de e texto: “Prresione una
a tecla para
a continuarr…” sin esta
a función e
el
prog
grama no realizaría
r una pausa, y debido a que el programa se e ejecuta a gran veloccidad no see
podrría observa
ar la ejecución del mismo.

} (L
Llave de cie
erre)

La llave de cie erre delimitta las línea


as de códiggo que perrtenecen a una funció ón, en este
e caso a la
a
funcción main(), en otras palabras la as líneas que se escrriban dentro
o de las lla
aves de ap
pertura y de
e
cierrre perteneccen a la función main()).

Nota
as importan
ntes:

• Una cade ena de texxto es unaa secuencia


a de caraccteres, que
e
puede
en ser vissualizados (aunque no n necesarriamente) en la pan ntalla de la
a
computadora, esste es su usso más com
mún, crear mensajes de
d texto.
• El operador ; (punto y coma) del final de la línea de código, se utiliza en el
Lenguaje C++ para separar una instrucción de otra. Se pueden poner varias
instrucciones en la misma línea siempre que se separen por un punto y coma.

• Como habrás observado el código fuente de un programa escrito en Lenguaje


C++ está compuesto por palabras o instrucciones escritas en el idioma inglés, a
estas instrucciones se les conoce como palabras reservadas, ya que estás
tienen una función preestablecida y específica para el compilador. Estas
palabras se escriben tal y como se muestran en las explicaciones que se te dan.

• El código fuente además de estar compuesto por palabras reservadas está


integrado por símbolos como “( )” “ ; “ “{ }” si no sabes cómo escribir  
• alguno de estos símbolos puedes consultar la tabla del código ASCII. 

Para saber más:

Un ejemplo de cómo apoyarte en esta tabla es el siguiente, si tienes que


escribir una llave de apertura, ubica en la tabla del código ASCII el símbolo y
observa el número que tiene asignado en la columna “Dec”. Para escribir el
símbolo mantén presionada la tecla “Alt” y presiona en seguida el número 123
que aparece en la columna “Dec”, después suelta la tecla Alt y se escribirá el símbolo {

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 atención ya que en la actividad de aprendizaje siguiente vas a realizar un programa.

Tutorial Cplusplus 
O tecleando en el buscador de you tube: INGEAVILES

Ya que se te ha explicado el código 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, además 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, además de que pondrás en práctica el conocimiento que acabas de adquirir.
Instrucciones:

1. Edita el código fuente del programa “hola mundo” que acabas de revisar, depúralo y compílalo 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 válida. El archivo que debes subir a
la plataforma es el código fuente, es decir el archivo con extensión .c que se realizó.

Cuando tengas listo tu archivo guárdalo en tu PC y envíalo con tus datos en el siguiente formato:
apellidopaterno_materno_nombre_actividadnumero

1.2 Salida estándar.

Un programa escrito en Lenguaje C++ debe permitir la comunicación e interacción 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 más eficaz para llevar a cabo esta tarea
es la pantalla de la computadora o salida estándar.

a) cout

cout es un objeto de la clase llamada ostream declarada y definida dentro de la librería llamada
iostream, este objeto posee los métodos necesarios para establecer un flujo de información hacia la
salida estándar de la computadora (la pantalla) permitiendo así imprimir mensajes de texto o el
contenido que almacena una o más variables en la pantalla de la computadora. cout sobrecarga al
operador de inserción (<<) con el fin de ofrecer al programador una notación más cómoda que le
permita enviar hacia el flujo de salida una secuencia de objetos (información) en una única
instrucción (posteriormente se explicará a detalle que es la sobrecarga de operadores, por el
momento se te comenta que es la habilitación de un operador (símbolo) para operar con objetos por
los cuales aun no está habilitado). Por lo tanto para mostrar información en la pantalla de la
computadora es necesario utilizar al objeto cout y al operador de incisión (<< ) juntos.

Para ejemplificar lo explicado anteriormente se te presenta a continuación un programa escrito en


Lenguaje C++ que muestra en pantalla un mensaje de texto y el contenido de variables de distintos
tipos, las líneas de código resaltadas muestran lo que se te acaba de explicar.
A continuación se te presenta un código fuente escrito en Lenguaje C++ que muestra en pantalla un
mensaje de texto y el contenido de variables de distintos tipos, las líneas de código resaltadas
muestran lo que se te acaba de explicar, analízalo con detenimiento.

El resultado de editar, depurar y compilar este código fuente es el siguiente:


Explicación:

En este
e prograama se declararon nue eve variable es: “ a, b, c,
c d, e, f, g, h, i ” todas ellas de diiferente tipo
o
de datos
d (tipo de
d variablee) a las cuaales se les asigno
a un valor
v de accuerdo al tip po de informmación que e
pued den almaccenar, exce epto a la variable
v lla
amada a, la cual fu ue declara ada pero no n definida a,
ense eguida se encuentra
e escrita
e la siguiente líneea de códig go: cout << "IPN ESIM ME TICOMA AN" << end dl
<< endl;
e la cual por meddio del objeto cout y el operador de inserció ón (<<) se encargan de imprimir
en pantalla
p la cadena
c de texto: “IPN
N ESIME TICOMAN” re ecuerda qu ue para indicar al com mpilador que e
se desea
d mostrar en la pa
antalla una cadena de caracteress esta se de ebe escribirr entre commillas dobless
(“”), Después de la últimma comilla doble se escribió
e nueevamente el operado or de inserrción (<<) y
ense eguida la se
entencia de
e escape en ndl que se utiliza para a dar un salto de línea es decir un n enter.

Después se en ncuentra es scrita la siguiente línea


a de códigoo: cout << "El
" valor de e a es: " <<
< a << endll;
la cu
ual muestra a en pantalla la caden na de caraccteres: “El valor
v de a es:”
e y ense eguida sepa arado por eel
operrador de in nserción (<<<) el nombre de la variable de e la cual ses desea mostrar
m en pantalla eel
conttenido que almacena dicha varia able, en estte caso la variable
v llam
mada a, en n la imagen anterior see
obseerva que la a variable de
d nombre a guarda un numero o 232, esto se debe a que al de eclarar y no
o
defin
nir el valor de esta vaariable el Siistema Ope erativo asig
gna un valo or aleatorio del mismo o tipo que e
el
de la
l variable en cuestió ón. De estta misma forma se muestran en e pantalla a el conten nido de lass
varia
ables b, c, d,
d e, f, g, h e i.

Noota: Observ va que cadaa vez que ses muestra el contenid do de una variable
v porr pantalla ya
a
noo es necesa ario escribirr ningún moodificador de
d formato (%i, %c, %f,
% etc) parra indicar e el
tipo de variabble que se mostrará por pantalla, como se tenía
t que escribir
e en el
e Lenguaje e
C por medio de la funcción printf((). Esto se debe a que el objetto cout sob brecarga a al
<) para operar sobre cualquier tip
operrador de insserción (<< po de variab
ble.

1.3 Entrada esstándar.

Com mo ya se menciono anteriorme ente un prrograma esscrito en Lenguaje


L C
C++ debe permitir laa
communicación e interacción entre el usuario del progra ama y el mismo, pa ara lograr este fin ess
neceesario que el program ma permita a que el usuuario respo
onda a los mensajes
m q la computadora le
que e
mue estra en pan
ntalla o sim
mplemente el e usuario le
e de órdenees al progra
ama, el me
edio más eficiente para
a
lleva
ar a cabo esta tarea ess el teclado
o de la com
mputadora.

b cin
b)

cin es un obje eto de la clase


c llama
ada istreamm declarada y definid da dentro de d la librería llamada a
iostrream, este objeto posee los métodos necessarios para a establecer un flujo de información hacia la a
entrada estánd dar de la computado ora (el teclado) permitiendo asíí introducir informació ón hacia laa
commputadora. Este objetto sobreca arga al ope erador de extracción n (>>) con el fin de ofrecer a al
proggramador una notación más cóm moda que le e permita en nviar hacia el flujo de salida una a secuencia a
de objetos
o ormación) en una única instruccción. Por lo anterior pa
(info ara introduccir informacción hacia la
a
commputadora (hacia el programa) ess necesario o utilizar al objeto cin y al operad dor de extrracción (>>)
juntoos.
Para ejemplificar lo explicado anteriormente se te presenta a continuación un programa escrito en
Lenguaje C++ que muestra en pantalla un mensaje de texto indicando que se introduzca información
y posteriormente 9 mensajes de texto, en los cuales pide introducir por el teclado igual número de
valores para almacenarla en variables de diferentes tipos de datos.

El resultado de editar, depurar y compilar este código fuente es el siguiente:

Explicación:

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 ningún valor, enseguida se encuentra escrita
la siguiente línea de código: cout << "Introduce la informacion que se te pide: " << endl << endl; la
cual por medio del objeto cout y el operador de inserción (<<) se encargan de imprimir en pantalla la
cadena de texto: "Introduce la informacion que se te pide:” Después de la ultima comilla doble se
escribió nuevamente el operador de inserción (<<) y enseguida la sentencia de escape endl que se
utiliza para dar un salto de línea es decir un enter, enseguida se volvió a escribir el operador de
inserción (<<) y la sentencia de escape endl con lo cual se ejecuto un salto de línea adicional, esto
únicamente para dar formato a la información que se mostrara en pantalla, esta línea de código
termina con el operador punto y coma (;) debido a que es una instrucción.

Después se encuentra escrita la siguiente línea de código: cout << "El valor de a (int): " ; la cual
muestra en pantalla la cadena de caracteres: "El valor de a (int): " a manera de instrucción (orden)
para el usuario del programa y enseguida separado por el operador punto y coma (;) se escribió la
siguiente línea de código cin >> a; la cual permite que el usuario del programa introduzca desde la
entrada estándar de la computadora (el teclado) un valor de tipo int que se almacenara en la variable
llamada a, hasta este punto el programa queda en espera de que el usuario tecle la información que
se almacenara en a, después que el usuario introduzca un valor, por ejemplo -50 este debe
presionar la tecla enter para indicar a la computadora que ya ha terminado de teclear la información.

Enseguida el programa ejecutara la siguiente instrucción que se encuentra escrita después de la


mencionada anteriormente: cout << endl << "El valor de b (short): "; la cual imprimirá en pantalla la
cadena de caracteres escrita entre las comillas dobles, esta cadena únicamente indicara al usuario
del programa lo que tiene que hacer, observa que antes de la cadena de caracteres encerrada entre
comillas dobles ( "El valor de b (short): " ) se escribió cout << endl << lo cual ejecutara un salto de
línea (un enter) antes de imprimir en pantalla la cadena escrita entre las comillas dobles.

Enseguida se muestra el aspecto que tiene el programa después de que el usuario introduce toda la
información solicitada por el mismo.

Siguiendo con la explicación del programa enseguida se encuentran escritas las siguientes líneas de
código:

cout << endl << "El valor de b (short): ";

cin >> b;

Las cueles permitirán al usuario introducir el valor de que almacenara la variable b desde el teclado
de la computadora.

Posteriormente se encuentran escritas las siguientes líneas de código:

cout << endl << "El valor de c (long): " << " Y despues el de d (char): ";
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 línea de código: cin >> c >> d ; ofrece una ventaja, ya que con
un objeto cin se puede introducir desde el teclado más de un flujo de información que se almacenara
en las variables cuyos nombres estén escritos despues de el operador de inserción, en este ejemplo
la información que el usuario tecle primero se almacenara en la variable llamada c y la que se
introduzca después se almacenara en la variable d. es importante que sepas que no existe ningún
límite para introducir variables con un solo objeto cin. Nota también que en esta misma línea de
código no se especifico el tipo de información que se debía introducir (tipo de variable) esto se debe
a que el objeto cin sobrecarga al operador de inserción 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.

Conclusión:

C++ es un lenguaje de programación orientado a objetos, diseñado en el año 1980 por Bjarne
Stroustrup, es una extensión (mejora) del lenguaje de programación C, donde la Programación
Orientada a Objetos o POO es un paradigma de programación que usa objetos y sus interacciones,
para diseñar aplicaciones y programas informáticos, este lenguaje está basado en varias técnicas,
incluyendo herencia, abstracción, polimorfismo y encapsulamiento. En la Programación Orientada a
Objetos (POO), un objeto se define como la unidad (código fuente) que representa y realiza las
acciones de un objeto de la vida real.

En el proceso de elaboración de un programa escrito en Lenguaje C++ es necesario utilizar una


aplicación que le permita al programador escribir su código fuente, un depurador que le permitirá
encontrar los errores en el mismo y un compilador que traduzca este programa a un lenguaje
máquina dando como resultado un archivo con extensión exe, a las aplicaciones que cuentan con
este tipo de herramientas se les conoce como Entorno de Desarrollo Integrado (IDE).

2. Construcción de clases y objetos.

Introducción:

La programación 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 suposición 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 combinación de estos objetos es
un aspecto de dicha programación, pero también incluye mecanismos y características que permiten
que la creación y uso de objetos sea sencilla y flexible.
2.1 Aspectos importantes de POO

A continuación se presenta información 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 línea de código declara el objeto Asiento001 de la clase
tipo Venta_de_boletos que representa el software que permite vender boletos de avión.

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 múltiples objetos con características similares.

• Un programa orientado a objetos se compone únicamente de objetos, cada uno de ellos es una
entidad que tiene propiedades particulares que están descritas por los atributos y las formas de
operar sobre ellos, que de forma similar están definidos por los métodos.

• 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 método, es
decir, cuando un objeto recibe un mensaje, la respuesta al mismo es ejecutar el método
asociado con ese mensaje.

• El método 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 método. Un
método puede enviar mensajes a otros objetos solicitando una acción o información.

2.2 Diseño de una clase de objetos

Para la explicación de este apartado se utilizará un código fuente que se irá mostrando por
secciones, mismas que se describirán a detalle. Es necesario que a la par de cada explicación vayas
escribiendo el código fuente, ya que lo vas a utilizar al finalizar la explicación 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 avión, permitiendo personalizar y almacenar los datos del comprador.

La sintaxis para declararla es la siguiente:


Descripción:

class: Es una palabra res


servada, cuuyo significcado es clase, sirve para indicarr al compila
ador que se
e
está
á declarando una clase
e de objetos.

nom
mbre_de_la_
_clase: Es el nombre de
d la clase.

N
Nota: Para dar
d nombre
e a las clase
es se deben seguir lass siguientess reglas:

• Se puueden utilizzar casi todas las letra


as del alfabeeto, excepto la “ñ”.
• Se puueden utilizzar los números del 0 al a 9.
• No ses pueden n utilizar caracteres especiale es (puntos, comas, signos de e
n, etc.,) el único caráctter que es aceptado
admiracción o de intterrogación a ess el guión bajo
b ( _ ).
• El nombbre de una clase
c se puuede formar con núme eros y letrass pero no se
s puede iniciar con un n
número..
• No se pueden utilizar com mo nombre es de classes las pa alabras resservadas que q usa e el
compiladdor, por eje
emplo: for, main,
m do, while,
w etc.
• El Lenguaje C++ distingue
d entre mayússculas y minúsculas. Por lo tantto: nombre, Nombre y
NOMBR RE, son tress nombres ded clases distintas.
d
• Los nommbres de la as clases deben
d ser cadenas
c de
e caracteres, es decir, un caráctter despuéss
de otro sin
s espacio os entre elloos.

Llave de ape
{ (L ertura)

La lllave de ape
ertura indic
ca el inicio de
d las línea
as de código que perte
enecen a un
na clase de
e objetos.

}; (L
Llave de cie
erre)

erre indica el final de las líneass de código que perttenecen a una clase de objetoss.
La llave de cie
Obsserva que esta llave de
e cierre siem
mpre termina con el operador
o puunto y coma
a (;).

Ahora que se te mostra aron los ellementos básicos


b que conforma
an una cla
ase de objjetos se te
e
expllicará cómo
o se pueden
n elaborar los atributoss de la misma.

La declaración
d de atributo
os dentro dee una clase
e describe las caracterrísticas de un objeto, por
p ejemplo
o
su ta
amaño, color, textura, forma, etc.

Conntinuando co
on la explic
cación, para
a el ejemplo
o se propon
nen los sigu
uientes atributos para la clase de
e
obje
etos llamada
a venta de boletos:.

¾ Nombre del compra ador del bo


oleto.
¾ Numero de asiento o.
¾ Costo de el bolero.
¾ Millas accumuladas.

Reccuerda que todos los atributos


a en la clase de
e objetos so
on definidoss por variab
bles.
La forma de declarar los atributos es la siguiente.

Descripción de los atributos:

private:

Es una palabra reservada, cuyo significado es privado, sirve para indicar


al compilador que los atributos que se declaren después de la misma
serán de tipo privado, es decir, ningún método (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
modificación indebida de información.

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

En esta línea de código aparecen cuatro atributos,

En esta línea de código se declararon cuatro atributos que describen las características de la clase
de objetos Venta_de_boletos. Observa que cada uno de los atributos es capaz de almacenar un tipo
de información específica, 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
información que se quiere almacenar en cada uno de ellos.

Anteriormente se menciono que el comportamiento de un objeto está definido por métodos o 


funciones,  estos  son  los  únicos  que  pueden  acceder  a  la  información  almacenada  en  los 
atributos de una clase de objetos e incluso modificarla, los métodos obtienen este “permiso” 
al ser declarados y definidos dentro de las llaves de apertura y de cierre ({ y }) de la clase de 
objetos.  
 
Las acciones que realizará la clase de objetos llamada Venta_de_boletos son las siguientes:  
 
9 Asignar el nombre del comprador del boleto. 
9 Obtener el nombre del comprador del boleto. 
9 Asignar el número de asiento. 
9 Obtener el número de asiento. 
9 Asignar el costo del boleto. 
9 Obtener el costo del boleto. 
9 Asignar el número de millas. 
9 Quitar número de millas. 
9 Obtener número de millas. 
Enseguida se muestra la forma de declarar y  definir  los  métodos  que  realizaran  las primeras 
dos acciones, es decir: 

9 Asignar el nombre del comprador del boleto. 
9 Obtener el nombre del comprador del boleto. 

Descripción: 

public:   
Es una palabra reservada (su significado es público), sirve para indicar al
compilador que los métodos que se declaren después de ella serán de tipo
público, es decir, cualquier método o programa podrá invocar o utilizar dichos
métodos sin ninguna restricción, pero solo se realizaran las acciones
previamente declaradas en estos métodos, es decir, el método 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


declaración de método que la precede no va a devolver ningún valor.

Anom( ) es la declaración de un método, dentro de los paréntesis se pueden declarar argumentos,


es decir variables.

string nom es la declaración de un argumento llamado nom de tipo string

Después se encuentran escritas las siguientes líneas de código:

nombre = nom;

Como ya se menciono anteriormente las llaves de apertura y de cierre ({ y }) delimitan las líneas de
código que pertenecen al método Anom(), en este caso solo es una línea de código.

nombre = nom;

Esta línea de código realiza la


asignación de información, es decir,
el contenido que almacena el
argumento llamado nom de tipo
string (debe contener una cadena
de caracteres, esta información se
le asigna a este argumento desde
otra función o programa) hacia el
atrib
buto llamado nombre del
d mismo tipo,
t en la siguiente
s im
magen se ejjemplifica esto:
e

Ense
eguida se encuentran
e escritas la
as siguiente
es líneas de
e código:

strin
ng Onom()

return nombre;

Las líneas de código


c ante
eriores son la declaracción y definiición del mé
étodo llama ado Onom( ) el cual a
al
minar de eje
term ecutarse deevolverá un
n valor y este valor será de tipo o string (ess decir una cadena de
e
cara
acteres), poor esta raz
zón se le antepuso
a la
a palabra reservada string, a este e métoddo no se le
e
decllaro ningún argumentoo (variable).

return nombre; esta líneaa de códigoo, regresa el


e contenidoo del atributo llamado nombre de e tipo string
g,
el tip
po de dato
os de este atributo
a es el responssable de qu ue a la decclaración y definición del método o
llam
mado Onom m() se le haya escrito al principio
o el tipo de datos strinng y no otrro, ya que se
s necesita a
que el método llamado Onom() devu uelva la info
ormación almacenada
a a en el atrib
buto llamado nombre y
la in
nformación almacenadda en este atributo
a es justamente
j de tipo string.

Nota:

Si la
a informaciión que alm
macena el atributo
a llam
mado nomb bre hubiera sido de cuualquier otro
o
tipo de
d datos, por
p ejemplo o int, entoncces a la de eclaración del
d método o se le debeería escribir
la pallabra reserv vada int en lugar de sttring o cuallquiero otro
o tipo de da
atos (ya sea
a primitivo o
derivvado).

Notaa: para sabber más acerca


a delo
os tipos de
e datos prim
mitivos o derivados consulta la siguiente
e
inforrmación dando clic en la palabra TIPOS PR RIMITIVOS:

TIPO
OS PRIMIT
TIVOS

Se les llama tipos prim mitivos porqque están definidos


d p el compilador y se
por s clasifica
an en: tiposs
ente
eros, tipos reales,
r el tip
po carácterr ampliado wchar_t
w y el tipo bool.

• Tipos en
nteros: charr, short, int y long.
• Tipos re
eales: float, double y lo
ong double..

Cada tipo primitivo tiene un


u rango diiferente de valores positivos y ne egativos, exxcepto el tip
po bool quee
solo
o tiene dos valores: tru
ue y false. El
E tipo de datos
d que se
s seleccion ne para declarar las variables
v dee
un determinado
d o programaa dependerrá del rang go y tipo de
e valores que vayan a almacena ar cada una a
de ellas
e y de si
s estos son n enteros o fraccionarios. Los ficcheros de cabecera
c <cclimits> y <cfloat>,
< assí
com
mo la plantillla numeric_
_limits <tipo
o> definida en <limits>
> especifica
an los valorres máximo os y mínimo o
para
a cada tipo, además de otras cara acterísticass.

Cada tipo de entero pue ede ser caalificado po


or las palabras clave
e signed o unsigned. Un entero o
califficado signe
ed es un entero
e con signo; estto es, un valor
v entero
o positivo o negativo.. Un entero
o
gned es un valor enterro sin signo
califficado unsig o, el cual ess manipulad
do como un
n valor ente
ero positivo
o.
Estaa calificació
ón da lugar a los siguie
entes tipos extras:

sig
gned char, unsigned char
c

sig
gned short, insigned short
s

sig
gned int, un
nsigned int

sig
gned long. unsigned lo
ong

Si lo
os calificado
ores signed d y unsigne ed se utiliza
an sin un tipo entero específico,
e se asume que es tipo
o
int. Por
P este mo otivo, las siiguientes de
eclaracione es son equiivalentes:

s
signed x; // es equivalente
e a

s
signed int x;
x

Un tipo
t entero calificado con
c signed es equivale
ente a utilizzarlo sin callificar.

Según esto, lass siguientes


s declaracio
ones son equivalentess:

c
char y; // es equivvalente a

s
signed char y;

El tiipo long doouble depe


endiendo ded la impleementación C++ utiliizada pued
de ser de 8 bytes de
e
long
gitud, igual que
q un dou uble, o de 12 bytes.

El tiipo wchar__t es utiliza


ado para declarar
d daatos entero
os en el raango 0 a 65535
6 lo que
q permite
e
mannipular el juego caracteres Unico
ode, se trataa de un códdigo de 16 bits (valorees de 0 a 65535),
6 esto
o
es, cada
c carácter ocupa 2 bytes conn el único propósito de
e internacionalizar el le
enguaje, Lo
os valores 0
a 1227 se correesponden conc los caraacteres ASSCII del missmo códigoo y el juego o de caractteres ACSII
confforma una parte
p muy pequeña
p de
el juego de caracteress Unicode.

El tipo bool se
e utiliza para indicar si el resulttado de la evaluaciónn de una expresión
e b
booleana ess
verd
dadero o falso. Por deefinición, tru
ue toma el valor 1 cua
ando se connvierte a en
ntero y falsee el valor 0
0,
y a la
l inversa, cualquier
c valor entero distinto de
e cero se co
onvierte en true y cero
o en false.

Tipo
os derivados

Se les denomina tipos de erivados poorque se co onstruyen a partir de los tipos primitivos
p y se pueden
n
clasificar en: enumeracio
e ones, matrrices, funciiones, punteros, refe erencias, estructuras, uniones y
clases. Todos ellos
e serán explicadoss a lo largo de esta unidad de aprendizaje.

Noota: Si te interesa prrofundizar en


e este temma, así commo aprender más aceerca de loss
eleementos básicos del lenguaje de d programmación C++ + consulta el
e compenddio de C+++
que se encue entra en la
a página prrincipal de esta unida
ad de aprendizaje en el área de
e
reccursos.
Ya que se de eclaró y definió la a clase de d objeto
os llamada a
Venta_dde_boletos es necesa ario declara
ar todos loss objetos qu
ue le van a
perteneccer, esta de
eclaración se
s realiza dentro
d de laa función main(),
m como
o
se muesstra a continuación:

Commo se te meencionó, a partir de esste momennto se crearrán los obje


etos que le van a perttenecer a la
a
clase de objeto
os o plantilla
a realizada antes.

No
ota: Al mommento de deeclarar y de
efinir una clase
c de objjetos, se de
efine un nu
uevo tipo de
e
da
atos, diferente a los tipos primiitivos (a esto se le llama decllarar un tip po de dato o
de
erivado).

Unaa analogía que


q te pued de ayudar a compren nder la relacción entre una plantillla y los objetos que lee
pertenecen es la siguiente e: imagina que la classe de objeto
os llamada Venta_de_ _boletos “tuuvo” un hijo
o,
(un objeto) este
e hijo se lla
ama boleto1 y heredo todas las característi
c cas de su madre,
m esta
as son: que e
tiene
e cuatro va
ariables, unna de tipo string
s llama
ada nombre e, una de tiipo short lla
amada num m_asiento y
dos de tipo float llamadas s costo y millas
m respeectivamentee. Este objeeto también n “tiene” do
os métodoss
uno llamado An nom() y otroo llamado Onom().
O

Para
a usar los métodos
m y atributos
a qu
ue posee ell objeto se realizan
r lass siguientess líneas de código:

En la
as líneas de código se
eñaladas puedes obse
ervar lo sigu
uiente:

• Se decla
araron dos variables de
d tipo string llamadass NOM1 y NOM2
N respe
ectivamente.
• Por med dio del obje
eto cout y su operado or de inserrción ( coutt << ) se im
mprimió en pantalla la
a
cadena de caracteres: “Ingressa el nombrre del comp prador del boleto”
b
• Posterio
ormente, po or medio del objeto cin
c y su operador de extracción ( cin >> ) se recibirá á
dicha in
nformación por el teclado de la computado ora y se almacenará dentro de la variable e
NOM1 ded tipo string.

Paraa guardar lal informac ción introdu


ucida por el
e teclado dentro
d del atributo llamado nom mbre de tipo o
príva
ate (declaraado dentro de la clase e de objeto
os) se utiliza
a el nombrre del objetoo creado (eel “hijo”), ess
deciir el objeto boleto1 y se
s invoca ala método que se decla aró para esste propósitto, en este ejemplo ess
el método 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 método Anom() al escribir entre los paréntesis el nombre de la variable
que contiene la información 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 asignación:

El resultado de editar, depurar y compilar todo el código fuente sería el siguiente:

Para comprobar que se almacenó correctamente la información introducida por el teclado, es decir el
nombre SALOMON, se utilizará el método 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 líneas de código que realizan esta acción:

En las líneas de código remarcadas puedes observar que:

Por medio del objeto boleto1 y el operador punto ( . ) se invocó al método Onom() el cual lee y
devuelve el contenido que almacena el atributo llamado nombre, esta información 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 inserción ( cout << ). Corroborando con esto que la información
introducida por el teclado efectivamente se asigno dentro del atributo llamado nombre por medio del
método Anom().

El resultado de editar, depurar y compilar todo el código fuente es el siguiente:

Para que puedas ver el código fuente con los elementos explicados hasta este punto da clic en el
siguiente hipervínculo (Venta de boletos):

Actividad de aprendizaje 2 “Clases de objetos”

Ahora que conoces la forma de declarar y definir una clase de objetos a través 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 declaración de objetos, a partir de
clases, utilizando la Programación Orientada a Objetos. Además de que pondrás en práctica el
conocimiento que acabas de adquirir.

Instrucciones:

1. Edita el código fuente del programa “Venta_de_boletos” que acabas de descargar y revisar,
depúralo y compílalo en el compilador Dev C++
2. Agrega los métodos necesarios para que el objeto boleto1 sea capaz de realizar las siguientes
acciones:

¾ Asignar el número de asiento. 
¾ Obtener el número de asiento. 
¾ Asignar el costo del boleto. 
¾ Obtener el costo del boleto. 
¾ Asignar el número de millas. 
¾ Obtener número de millas. 

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 válida. El archivo que debes enviar
es el código fuente, es decir el archivo con extensión .cpp que se realizó.

Cuando tengas listo tu archivo guárdalo en tu PC y envíalo 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
método más, mismo que se te explica a continuación:

9 Quitar número de millas. 
El método es el siguiente (observa las líneas de código remarcadas):

Descripción:

Como puedes observar este método se llama Rmillas() y es de tipo void lo cual indica que este
método no devolverá ningún valor al terminar de ejecutarse, este método 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 línea de código:

millas = (millas - rmilla);

Esta línea de código 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 operación
aritmética se guarda dentro de el mismo atributo llamado nombre.

Para implementar este método, es necesario declarar dos variables más en la función principal
main(), mismas que permitirán ingresar por el teclado el valor de las millas que deben quitarse, estas
variables se presentan a continuación:
Descripción:

Como puedes observan, en la última línea de código se declararon dos variables más de tipo float
sus nombres son MILLA3 y RMILLAS respectivamente, en la última línea de código.

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

Descripción:

En este código fuente se puede observar que se solicita introducir por el teclado el numero de millas
a quitar (primer línea de código resaltada), esta información se almacena en la variable RMILLAS de
tipo float, inmediatamente después por medio de la línea de código: boleto1.Rmillas(RMILLAS); se
realiza la resta declarada dentro del método llamado Rmillas(),

Para corroborar que efectivamente se realizó la resta aritmética, enseguida se asigna el valor que
devuelve el método llamado Omillas(), que es el contenido del atributo millas, de la siguiente forma:

MILLA3 = boleto1.Omillas();

posteriormente se muestra esta información por pantalla por medio de la siguiente línea de código:

cout << endl << "El numero de millas disponibles es: " << MILLA2 << endl;

Hasta aquí se te explicó la realización de todo el código fuente del programa venta de boletos, el
resultado final al editarlo, depurarlo y compilarlo es el siguiente:
Ya que se mostró el resultado del código 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 declaración de
objetos, a partir de clases, utilizando la Programación Orientada a Objetos. Además de que pondrás
en práctica 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
características de esta cuenta bancaria son las siguientes:

¾ Nombre del cuentahabiente.


¾ Número de cuenta.
¾ Tipo de interés
¾ Saldo

3. las características anteriores deben estar definidas por atributos.

4. La cuenta bancaria debe realizar las siguientes acciones.

¾ Asignar el nombre del cuentahabiente. 
¾ Obtener el nombre del cuentahabiente. 
¾ Asignar el número de cuenta. 
¾ Obtener el número de cuenta. 
¾ Asignar el tipo de interés. 
¾ Obtener el tipo de interés. 
¾ Realizar un ingreso de efectivo. 
¾ Realizar un retiro de efectivo. 
¾ Obtener el saldo de la cuenta. 
Todos estos métodos deben ser implementados (usados) dentro de la función 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 válida. El archivo que debes
enviar es el código fuente, es decir el archivo con extensión .cpp que se realizó.

Cuando tengas listo tu archivo guárdalo en tu PC y envíalo 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,
añade tres líneas de código después del método que quita número de millas explicado antes, con
estas nuevas líneas de código se solicitará revisar el contendido que almacena el atributo llamado
millas, antes de agregar o quitar algún numero de millas, estas son las nuevas líneas que vas a
agregar:

Y esta es la ubicación de estas dos líneas de en el código fuente del programa .

Como puedes observar después de crear al objeto llamado boleto1 (el “hijo”) se invoco al método
llamado Omillas(), de esta forma: MILLA3 = boleto1.Omillas(); el resultado que devuelve este
método 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 incisión ( cout << ).

Nota: no olvides comentar tus comentarios para que posteriormente recuerdes que hace este
fragmento de código fuente.

El resultado de editar depurar y compilar el programa con las dos nuevas líneas de código es el
siguiente:

Cómo puedes observar en la imagen anterior el atributo de tipo prívate llamado millas contiene el
numero: 3.19496e-043 sin que tu le hayas asignado este valor previamente, ¿Por qué crees que
sucedió esto?

Respuesta:

Los atributos describen las características de un objeto, dichos atributos están definidos por
variables, las variables locales no son iniciadas automáticamente en el Lenguaje C++ y los atributos
que se declararon para describir a la clase de objetos Venta_de_boletos son variables locales.

No es posible iniciar a los atributos directamente en su declaración, recuerda que los atributos de
una clase son privados (a menos de que se indique lo contrario). Enseguida se muestra un ejemplo
del mensaje
m de
e error que mostrara el
e depurado
or del DEv C++
C si es que
q se intenta declara
ar e iniciar a
los atributos
a de
e la clase.:

Nota: Recuerda quee para leer, o modificaar el contennido de los atributos dee una clasee
de objeto
os, es nece
esario hace edio de un método, siempre y cuando
erlo por me c este
e
sea decla
arado dentrro de las lla
aves que de
elimitan el cuerpo
c de laa clase ( { y }; ).

2
2.1 Constrructor

Commo has obsservado, all declarar un u atributoo pero no definir


d el valor que almacenará
a el sistema a
operrativo asign
na automátticamente y en forma a aleatoria un valor del mismo tipo t que el atributo, lo
o
cuall puede darr lugar a un
n error. Porr ejemplo, si uto de tipo int llamado
s se declarra un atribu o a, de esta a
form
ma; int a; el cual no o puede se er iniciado al declararrse ya que e los atribu utos por de efault en eel
Lengguaje C++ son privad dos (prívate
e:) si despu
ués de decllarar este atributo
a rea
alizáramos la siguiente e
operración ¿Cuál sería el resultado
r que se almaacenaría deentro del atrributo llamaado a?:

a = a +1;
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
operación se almacena dentro de a.

La forma de evitar lo anterior es iniciando a, los atributos, el método que el Lenguaje de


Programación C++ provee al programador para llevar acabo esta tares se denomina constructor.

a) Definición de constructor:

 Un constructor es un método especial de una clase de objetos que es invocado (llamado)
automáticamente en el momento en que se crea un objeto de esa clase. La función 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 ningún valor, ni
siquiera se puede escribir antes del nombre del constructor la palabra reservada void.

Por ejemplo, si añadieras a la clase de objetos llamada Venta_de_boletos un constructor, tendría


que llamarse también Venta_de_boletos.

Ahora bien, cuando a una clase de objetos no se le declara un constructor (escribir explícitamente
un constructor), El Lenguaje C++ declara uno por omisión. (Esta operación la realiza el depurador de
el IDE que utilices para editar, depurar y compilar tu código fuente). Por ejemplo, la clase de objetos
llamada Venta_de_boletos, que has escrito anteriormente tiene por omisión un constructor declarado
llamado Venta_de_boletos().

Enseguida se te muestra un ejemplo de cómo se escribe la sintaxis para declarar un constructor:

Descripción: 

public:   
La definición y características de esta palabra reservada, ya se te explicaron anteriormente, si tienes
alguna duda revisa la explicación 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 “público” para que pueda ser invocado por cualquier otra función o programa,
además, por omisión todos los constructores son de tipo público.

Nombre_de_la_clase( )

Recuerda que la declaración del constructor de una clase de objetos, también es un método, el
nombre del constructor debe ser el mismo que el de la clase de objetos, dentro de los paréntesis 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 líneas de código que
pertenecen al constructor.

// Constructor vacio

Esta línea de código 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á cómo es que el Lenguaje
C++ declara por omisión un constructor cuando no lo hace el programador.

Las líneas de código remarcadas muestran como quedaría declarado


automáticamente el constructor por el Lenguaje C++.

Pregunta para reflexionar:

¿Si la clase de objetos llamada Venta_de_boletos posee un constructor por


omisión y la función de los constructores es iniciar los atributos ¿por qué se
asignó automáticamente un número sin que tú lo hayas tecleado cuando
agregaste las siguientes líneas de código?

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 número aleatorio en el atributo llamado millas, en otras palabras el constructor no
realizó ninguna acción, quien realizó la asignación del número aleatorio fue el SO.

Declaración y Definición 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 añadir las siguientes líneas de código al código fuente del programa llamado Venta de
boletos realizado anteriormente:
Explicació
ón:

Como pue edes obserrvar, en las líneas de e código re emarcadass, todos loss
atributos fueron
f inicia
ados adecu uadamente de acuerdo a su tipo o, el atributo
o
nombre fuue iniciado con
c una cadena de ca aracteres en blanco, observa
o que
e
entre las comillas dobles (“”) no hay un n espacio ene blanco. El atributo o
llamado num_asiento o fue inicia
ado con ce ero, es decir almacena a un cero y
por último los atributoos costo y millas
m fuero
on iniciadoss con cero punto
p cero.

Noota: Recuerda que al a definir (iniciar) una variable


v de tipo float es
e necesario
o escribir la
a
lettra f o F para especificcar que el valor
v asigna
ado es de tipo floar y no
n de tipo double.
d

Se te invita a realizar otra prueb ba, toda vez


v que ell constructtor inició a los atribbutos de laa
clase_de_bolettos, el obje
etivo de essto es soliccitar el con
ntendido qu
ue almacen na el atribu
uto llamadoo
milla
as, antes de agregar o quitar alg
gún numeroo de millas. La siguiennte imagen muestra la as líneas de
e
códiigo necesaarias para realizar essta operación. No olvvides incluiir el constrructor de la clase de e
obje
etos.

Commo puedes observar después


d dee crear al objeto
o llamaado boleto1 (el “hijo”)) se invoco
o al métodoo
llam
mado Omilla as(), de essta forma: MILLA3 = boleto1.O Omillas(); el resultad do que devvuelve este e
métoodo se guaarda dentro de la varia
able llamada MILLA3 para poste eriormente imprimir en n pantalla e
el
conttenido de esta variable
e por medio o cout y su operador de incisión ( cout << ).
o del objeto

El re
esultado de
e agregar es
stas líneas de código y el constru
uctor al pro
ograma es el
e siguiente
e:

Commo puedes observar gracias


g a que
q el consstructor llam
mado Venta a_de_boletos() inicio a todos loss
atrib
butos que describen
d la
as caracterrísticas de la
l clase, ah hora el atrib
buto llamad
do millas allmacena unn
ceroo inmediatamente después de se er creado el objeto llam mado boletoo1.
Ense
eguida pue
edes descargar el prog
grama Ventta de boleto
os con el constructor.
c

2.2 Destructor
D

Ya se
s ha men ncionado que existe un método o que se ejecuta
e auto
omáticame ente cada vez
v que see
consstruye un objeto
o de un
na clase (cconstructor)), como reccordaras al crearse un n objeto, el SO asigna
a
un espacio
e en la memoriaa RAM parra almacenar a este objeto,
o cuan ndo ya no es
e necesarrio el objeto
o
crea
ado el espa acio asignad
do por el SO
S en la me emoria RAM M debe se er liberado, existe un método
m que
e
se in
nvoca auto omáticamen nte cada veez que se destruye
d unn objeto. Este
E métodoo recibe el nombre dee
desttructor y su
u función principal
p ess la de libe
erar el espaacio utilizad
do por un objeto en la memoria a
RAMM.

• Definició
ón de destrructor:

Un destructor es un método
m pecial de una clase de objeto
esp os que ess invocado o (llamado)
auto
omáticamen nte antes de
e que un obbjeto de esa clase sea a eliminado
o físicamentte de la me
emoria RAM M
de la computadora. La fu unción de un
u destructtor es liberrar (borrar) el espacio
o en la memoria RAM M
asig
gnado a un objeto, cuaando este objeto
o ya no
o es necessario que exxista. El nombre de unn destructor
debee ser el mismo nomb d la clase de objetoss a la que pertenece, además de
bre que el de d que a su u
nommbre se le debe escrribir antes una tilde (~), un desstructor no posee arg gumentos y no puede e
retornar ningún
n valor, ni siquiera se
s puede escribir
e anttes del nommbre del constructor
c la palabra
a
rese
ervada voidd. Un ejemmplo de cómo se deb be nombra un destructor: si aña adieras a la clase de e
obje
etos llamada
a Venta_de e_boletos un
u destructo or, tendría que
q llamarsse ~Venta_ _de_boletoss

No
ota:

Laa tilde (~) que


q se esccribe antes del nombrre del consstructor no debe ser interpretada
a
co
omo el op perador co
omplemento o a uno. La forma de obten ner este símbolo
s ess
prresionando las teclas ALT
A + 126..

Ahora bien, cuuando a una a clase de objetos noo se le decllara un connstructor (e


escribir expplícitamente
e
un constructor)
c ), El Lengua
aje C++ deeclara uno por
p omisión n. (Esta opeeración la re
ealiza el de
epurador dee
el ID
DE que utilices para editar, depurar y comp
pilar tu códig
go fuente). Por ejemp plo, la clase
e de objetoss
llam
mada Venta_ _de_boletoos, que has escrito antteriormente
e tiene por omisión
o un denstructo or declarado
o
llam
mado ~Venta a_de_bolettos().

Ense
eguida se te
t muestra un ejemplo
o de cómo se
s escribe la
l sintaxis para
p declarrar un destrructor:

Desscripción:

pub
blic:   
La definición y caracteríssticas de essta palabra
a reservada
a,
ya se te expliccaron anteriormente, si tienes alguna
a dudaa
revisa la expliicación de la clase dee objetos del
d subtema a
“Disseño de unna clase dee objetos”, ahí puedess aclarar tuu
duda
a. l
Un aspecto muy importante de los destructores y que no debes olvidar es que cada destructor que
declares debe de ser “público” para que pueda ser invocado por cualquier otra función o programa,
además, por omisión todos los destructores son de tipo público.

~Nombre_de_la_clase ( )

Recuerda que la declaración del destructor de una clase de objetos, también es un método, el
nombre del destructor debe ser el mismo que el de la clase de objetos, no olvides escribir antes la
tilde (~), dentro de los paréntesis 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 líneas de código que
pertenecen al destructor.

// Operaciones a desarrollar

Esta línea de código es un comentario, lo referente a los comentarios ya se te explicó antes.

• Declaración y Definición 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 añadir las siguientes líneas de código al código fuente del programa llamado
Venta de boletos realizado anteriormente:

Explicación:

Como puedes observar, en las líneas de código


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 explícitamente 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 temática, integra las líneas
de código al programa que ya venías trabajando toda vez que se añadieron las líneas de código que
declaran y definen al destructor de la clase Venta_de_boletos, el objetivo de esto es reiniciar los
atributos antes de eliminar físicamente el objeto de la memoria RAM de la computadora. El siguiente
archivo muestra el código fuente completo que realiza lo explicado anteriormente, da clic sobre la
palabra Destructor para que se despliegue el programa.

Explicacion del destructor en el código fuente:

Las líneas de código remarcadas en rojo,  se agregaron dentro de la función main() observa el
siguiente código fuente:

Como puedes observar después de crear al objeto llamado boleto1 (el “hijo”) se invoco a todos los
métodos de este objeto uno por uno (esto ya se había explicado anteriormente). Después se coloco
la función system(“PAUSE”); para realizar una pausa en la ejecución del programa se invoco en
forma explícita al destructor de la clase llamado ~Venta_de_boletos(); con lo cual se reiniciaron
todos los atributos e inmediatamente después se elimino físicamente el objeto boleto1 de la memoria
RAM de la computadora.
El resultado de agregar estas líneas de código 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 línea de código siguiente:

cout << "Objeto destruido..." << endl;

Y gracias a esta línea de código es que puede visualizarce en pantalla ese mensaje después de ser
invocado el destructor, señal inequívoca que se elimino el objeto boleto1.

Conclusión:

Se puede concluir lo siguiente:

• 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 múltiples objetos con características similares.
• Un objeto de una determinada clase se crea en el momento en que se define una variable de
dicha clase.
• Un programa orientado a objetos se compone únicamente de objetos, cada uno de ellos es
una entidad que tiene propiedades particulares que están descritas por los atributos y las
formas de operar sobre ellos, que de forma similar están definidos por los métodos.
• 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 método, es decir, cuando un objeto
recibe un mensaje, la respuesta al mismo es ejecutar el método asociado con ese mensaje.
• El método 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 método. Un
método puede enviar mensajes a otros objetos solicitando una acción o información.
• Un constructor es un método especial de una clase de objetos que es invocado (llamado)
automáticamente en el momento en que se crea un objeto de esa clase.
• La función de un constructor es iniciar (definir) los atributos de este objeto.
• El nombbre de un co onstructor debe
d ser ell mismo no ombre que el e de la classe de objettos a la que
e
pertenecce y no pueede retornaar ningún va alor, ni siqu
uiera se pueede escribirr antes del nombre de el
construcctor la pala
abra reservaada void.
• Un desttructor es unu método o especial de d una cla ase de obje etos que ese invocado o (llamado)
automátticamente antes
a de que
q un obbjeto de essa clase sea elimina ado físicammente de la a
memoria a RAM de la computad dora.
• La funciión de un destructor
d es liberar (borrar) el espacio en n la RAM asignado
a a un objeto o,
cuando este objeto o ya no es necesario
n q exista.
que
• El nombbre de un destructor
d d
debe ser el mismo nom mbre que ele de la classe de objettos a la quee
pertenecce además s de que a su nombre e se le deb be escribir antes
a una tilde
t n destructor
(~), un
no poseee argumen ntos y no pu
uede retornar ningún valor,
v ni siq
quiera se puuede escribbir antes deel
nombre del constru uctor la pallabra reservvada void.

3. Estructuras
E

Intro
oducción:

Hasta este mo omento todas las variables que has utilizad


do en los programas escritos en Lenguaje e
C+++ de esta unidad
u de aprendizaje
a e permiten almacenar un dato de d un solo tipo de variable, pero o
¿quéé pasa cua ando es ne
ecesario declarar una gran cantid
dad de varriables y todas de dife
erente tipo?
?
El Lenguaje
L de
e programaación C++ provee al programad dor una he
erramienta sencilla y eficaz para a
agru
upar cualqu uier númerro de variables (aunnque estass sean de diferente tipo) bajo un mismo o
iden
ntificador, permitiendo
p o con estoo manipula ar una graan cantidadd de varia ables bajo un mismo o
iden
ntificador (nombre).

• Definició
ón de estructuraEstruccturas:

Unaa estructura
a al igual que
q una clase de obj bjetos repreesenta una plantilla, a partir de la cual se e
puedden genera ar objetos, ya se ha mencionad do que estos objetoss heredan todas las variables y
métoodos que definen
d las
s caracteríssticas y com
mportamien nto de dichhos objetoss. Al igual que en lass
clases, en las estructurass se puede almacenarr más de una u variable e (atributoss) mismas queq pueden n
ser de diferente tipo de datos, tam mbién pued den realizaar las mismmas acciones que un na clase de e
etos con lass únicas diferencias de
obje d que las variables
v quue definen las caracte erísticas de los objetoss
se le
es llama miiembros en n lugar de atributos
a y estos
e son públicos
p porr default, po
or lo anterio
or cualquier
métoodo o función puede acceder al contenido que almaccenan las estructuras
e e incluso modificarloo,
commo consecue encia de essto ya no ess necesarioo declarar y definir mé
étodos para acceder o modificar a
los miembros
m d una estructura.
de
 
Noota: Tanto los atributo
os como loss miembros describen las caracteeristicas de un objeto y
se
e nombran de diferen nte manera para diferrenciar entrre una variable que describe
d lass
ca
aracteristica
as de una clase y una variable e que desccribe las caracteristic
c cas de una a
esstrcutura.

Un ejemplo
e muuy típico pa
ara aplicar una
u estructura es una
a ficha de información
n, que alma
acena datoss
relattivos a una persona, como
c los sig
guientes:

¾ Nombre
¾ Direcció
ón

¾ Teléfono
o

¾ Fecha de
d nacimien
nto.

 
Noota muy im mportante! : Los miembros de una estrucctura puede
en ser a su
s vez otraa
P ejemplo, la fecha
esstructura. Por a de nacim
miento, pod
dría ser un
na estructu
ura con loss
m
miembros día, mes y añ
ño.

 
La sintaxis
s para
a declarar una
u estructtura es la siiguiente:

Descrip
pción:

struct: Es una pa alabra rese


ervada (su significado
o es estrucctura), sirve
e
para inndicar al co
ompilador que
q se esttá declaran
ndo una esstructura de e
objetoss.

nombre
e_de_la_esstructura: Es el nombre
e de la estrructura.

No
ota: Para dar nombre a las estructuras se deben
d seguir las siguie
entes reglass:

• Se pueden utilizaar casi toda as las letrass del alfabe


eto, excepto
o la “ñ”.
• Se pueden utilizaar los núme eros del 0 al
a 9.
• No ses pueden utilizar caracteres
c especiales (puntos,, comas, signos de e
admiracción o de intterrogaciónn, etc.,) el único caráctter que es aceptado
a ess el guión bajo
b ( _ ).
• El nombbre de una estructura se puede formar con n números y letras pero no se pu uede iniciar
con un número.
n
• No se pueden
p utilizar como o nombres de estructturas las palabras
p re
eservadas que usa e el
compiladdor, por eje
emplo: for, main,
m do, while,
w etc.
• El Lenguaje C++ distingue
d entre mayússculas y minúsculas. Por lo tantto: nombre, Nombre y
NOMBR RE, son tress nombres de d estructuras distinta as.
• Los nom mbres de lasl estructuras deben n ser cade enas de ca aracteres, es decir, unu carácter
despuéss de otro sinn espacios entre ellos.

Llave de ape
{ (L ertura)

La llave de ap
pertura ind
dica el iniciio de las lííneas de có
ódigo que pertenecen
n a una esstructura de
e
obje
etos.

publlic:

Es una palabrra reservad


da (su significado ess público), sirve para
a indicar al
a compilad dor que loss
miem
mbros que se declareen despuéss de la mism
ma serán ded tipo púb
blico, es de
ecir, cualquier método
o
(función) 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 líneas de código que pertenecen a una estructura de objetos y
siempre termina con el operador punto y coma (;).

Ahora que se te mostraron los elementos básicos que conforman una estructura de objetos se te
explicará cómo se pueden elaborar los miembros de la misma.

La declaración de miembros dentro de una estructura describen las características de un objeto, por
ejemplo su tamaño, color, textura, forma, etc.

Continuando con la explicación, para el ejemplo se proponen los siguientes miembros para la
estructura de objetos llamada ficha.

¾ Nombre.
¾ Dirección.
¾ Teléfono.

Recuerda que todos los miembros en la estructura de objetos son definidos por variables.

La forma de declarar los miembros es la siguiente:

Descripción:

Observa que en la declaración de los miembros de la estructura llamada


ficha no se colocó el modificador public: explicado anteriormente, esta
omisión no causará ningún error al depurar y compilar el código fuente de
este programa, ya que aunque el programador no escribe este modificador
los miembros de una estructura son tratados por el compilador como
públicos.

Si el programador desea escribir explícitamente el modificador public: para los miembros de la


estructura, la declaración quedaría de la siguiente forma:

Continuando con la explicación del código fuente, después de la llave de


apertura se muestran las siguientes líneas de código:

string nombre;

string direccion;

long telEfono;

En estas tres líneas de código aparecen tres miembros que describen las características de la
estructura de objetos llamada ficha. Observa que cada uno de los miembros es capaz de almacenar
un tipo de información específica, por ejemplo los atributos llamados nombre y dirección son de tipo
string por lo tanto almacenan, cada uno, una cadena de caracteres, en este caso el nombre de una
persona y su dirección, por otro lado, el atributo telefono es de tipo long y guarda números enteros.
Como puedes observar, deben de ser declarados del tipo correspondiente a la información 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
público, ya no es necesario declarar y definir métodos para leer, asignar o modificar el contenido de
un miembro. También se menciono que un miembro de una estructura puede ser a su vez otra 
estructura, para aplicar esto último se declarará un miembro más llamado fecha_nacimiento, 
el  cual  será  una  estructura  que  contenga  tres  miembros  de  tipo  short:  día,  mes  y  año 
respectivamente,  estos  miembros  contendrán  la  información  referente  a  la  fecha  de 
nacimiento de una persona. Enseguida se muestra como hacerlo: 
 
Explicación:

Como puedes observar en el código 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 almacenarán la información 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 ningún 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 características de su
“mama” en este caso la estructura de la cual son declarados.
La forma de declarar variables para una estructura es la siguiente:

 
Explicación: 

Como puedes ob bservar en el código fuente


f se encuentran
e declaradass
las dos
d estruccturas exp plicadas anteriormen
a nte, fechaa y ficha a
respecctivamente y dentro de e la función
n principal del
d program ma (main( ))
se decclararon do os objetos, Gerardo y Liliana, el primero se declaró de e
tipo fiicha por lo tanto heredo
h los miembross: nombre,, direccion n,
no, dia, mes y anio alm
teléfon macenadoss en el miembro o
fecha__nacimiento o, que co omo record daras es una
u estructtura, por lo
o
tanto será
s capazz de almaccenar toda su informa ación. Por su parte eel
objeto llamado Liliana
L herredo únicam mente los miembros dia,mes y
anio, por
p lo tanto o solamentte será cap paz de almacenar la información n
referennte a la feccha de nacimmiento de una
u persona.

Notaa:   Para po oder almaccenar  la m
misma inforrmación en n 
el  objeto 
o llam
mado  Geraardo  y  enn  el  objetto  llamadoo 
Liliana  será  necesario 
n que  el  objeto 
o Liliiana  fueraa 
declarado tam mbién de tipo ficha, aasí se realizará por loo 
tanto en el siguiiente códiggo fuente eel objeto LLiliana seráá declaradoo 
también de tipo o ficha. 

No ota:   Para poder alm
macenar  laa misma in nformación n en el objeto llamad do Gerardoo 
y  en  el  obje
eto  llamad
do  Liliana  sería  necesario  quee  este  últiimo  fuera  declarado

taambién  de  tipo  fichaa,  esto  mismo  se  hará 
h en  el  siguiente  código  fuuente,  pon

muccha atencióón. 

Accceso a los m
miembros d
de una esttructura. 

Para  acceder  y  almacenar  informmación  den ntro  de  un


n  miembro o 
de  una  estruuctura  bassta  con  realizar  unna  asignacción  desdee 
cualquier  función  o  pro
ograma,  essto  únicammente  seráá  posible  ssi  
los  miembross  de  una  estructura 
e son  declarrados  com
mo  públicoss 
porr medio del modificad dor public:: 

A  continuació
c ón  se  muestra  la  forma  de  realizar  el  acceso  aa 
mieembros: 

 
Explicación:

Como puedes observar en la línea de código:

Gerardo.nombre = "GERARDO";

Se realizo una asignación, en la cual se está almacenando la cadena de caracteres GERARDO


dentro del miembro llamado nombre de tipo string del objeto Gerardo a través del operador punto (.).

Si fuera necesario introducir el nombre de la persona a través del teclado de la computadora, se


ocuparía el objeto cin y su operador de extracción (>>) y para corroborar que se almaceno la
información correctamente se tendría que imprimir en pantalla el contenido del miembro llamado
nombre del objeto Gerardo, para lo cual se utilizaría el objeto cout y su operador de inserción (<<).
En el siguiente código fuente se ejemplifica esto:

Explicación:

Por medio del objeto cout y su operador de incursión se imprimió en la pantalla de la


computadora la cadena de texto “Introduce un nombre” la cual indicará al usuario del programa la
acción que debe realizar, enseguida, por medio del objeto cin y su operador de extracción se
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 inserción de cómo se muestra en la siguiente línea de código:

cout << endl << "El nombre que se almaceno es:" << Gerardo.nombre << endl;

El resultado de editar, depurar y compilar este código fuente es el siguiente:

Para almacenar información en el miembro llamado dia de la estructura fecha se puede realizar lo
siguiente:

Por otro lado, si se quisiera almacenar información en el miembro llamado dia de la estructura fecha
se puede realizar lo siguiente:
Explicación:

Para poder almacenar información 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 código fuente anterior es el sihuiente:

Actividad de aprendizaje 4 “Estructuras.”

Ya sabes cómo declarar y definir una estructura de objetos a través 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 solución a problemas de ingeniería a través de la declaración
e implementación 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
características de esta agenda personal son las siguientes:

¾ Nombre.
¾ Direccion.
¾ Telefono
¾ Fecha de nacimiento

2. Las características: Nombre, Dirección y Teléfono deben estar definidas por miembros y la agenda
personal debe permitir realizar las siguientes acciones.

¾ Asignar el nombre de una persona. 
¾ Obtener el nombre de una persona. 
¾ Asignar la dirección de una persona. 
¾ Obtener la dirección de una persona. 
¾ Asignar el teléfono. 
¾ Obtener el teléfono. 
¾ Asignar la edad de una persona. 
¾ Obtener la edad de una persona. 
Todas estas acciones deben ser implementadas (realizadas) desde la función 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 información 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 válida. El archivo que debes
enviar es el código fuente, es decir el archivo con extensión .cpp que se realizó.

Cuando tengas listo tu archivo guárdalo en tu PC y envíalo 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.

Conclusión:

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 características de los objetos se les llama
miembros en lugar de atributos y estos son públicos por default, por lo anterior cualquier método o
función puede acceder al contenido que almacenan las estructuras e incluso modificarlo, como
consecuencia de esto ya no es necesario declarar y definir métodos para acceder o modificar a los
miembros de una estructura.

Вам также может понравиться