Publicado el 16 de Abril del 2021
1.386 visualizaciones desde el 16 de Abril del 2021
2,5 MB
100 paginas
Creado hace 3a (06/06/2020)
C++/OOP
C++/OOP
UN ENFOQUE PRÁCTICO
UN ENFOQUE PRÁCTICO
RICARDO DEVIS BOTELLA
RICARDO DEVIS BOTELLA
PRÁCTICO
PRÁCTICO
Página 1/297
1/297
Página
A Co
A Consonsoll
PRÁCTICO
PRÁCTICO
Página 2/297
2/297
Página
11
INTRODUCCIÓN
INTRODUCCIÓN
Es costumbre que las primeras líneas de un texto procuren, de alguna
Es costumbre que las primeras líneas de un texto procuren, de alguna
manera, al lector una suerte de explicación del talante y ánimo del autor al
manera, al lector una suerte de explicación del talante y ánimo del autor al
escribir la obra que tiene ante sí. Bien: he aquí un enésimo libro sobre C++
escribir la obra que tiene ante sí. Bien: he aquí un enésimo libro sobre C++
y -¿cómo no?- sobre Programación Orientada a Objetos. De acuerdo,
y -¿cómo no?- sobre Programación Orientada a Objetos. De acuerdo,
pensará el lector, pero ¿por qué éste y no otro?; o mejor, ¿qué tiene de
pensará el lector, pero ¿por qué éste y no otro?; o mejor, ¿qué tiene de
especial el presente texto? Y la respuesta es... ¡una intención eminentemente
especial el presente texto? Y la respuesta es... ¡una intención eminentemente
didáctica! Lo que se pretende es introducir al lector en los esquemas básicos
didáctica! Lo que se pretende es introducir al lector en los esquemas básicos
de la programación orientada-a-objetos -que en adelante llamaremos OOP-
de la programación orientada-a-objetos -que en adelante llamaremos OOP-
a través del uso de un lenguaje de amplia aceptación industrial, cual es
a través del uso de un lenguaje de amplia aceptación industrial, cual es
C++. La aproximación será, sobre todo, práctica: procuraré no perderme en
C++. La aproximación será, sobre todo, práctica: procuraré no perderme en
la maraña de siglas y conceptos que pueblan esta metodología y que
la maraña de siglas y conceptos que pueblan esta metodología y que
frecuentemente desaniman al principiante, de forma que, tras el inevitable
frecuentemente desaniman al principiante, de forma que, tras el inevitable
discurso teórico, siempre se buscará la aplicación concreta de lo expuesto
discurso teórico, siempre se buscará la aplicación concreta de lo expuesto
mediante código en C++. Se trata, pues, de una introducción al lenguaje
mediante código en C++. Se trata, pues, de una introducción al lenguaje
C++, pero, atención, utilizando de forma inseparable las técnicas y
C++, pero, atención, utilizando de forma inseparable las técnicas y
conceptos de OOP. El texto también quiere ser, por fin, ameno y, en lo
conceptos de OOP. El texto también quiere ser, por fin, ameno y, en lo
posible, divertido: la tradición norteamericana de obras en las que el rigor
posible, divertido: la tradición norteamericana de obras en las que el rigor
no está reñido con un cierto humor, en ocasiones salvaje, será aquí
no está reñido con un cierto humor, en ocasiones salvaje, será aquí
observada con cierta complacencia. El tono será, pues, desenfadado pero
observada con cierta complacencia. El tono será, pues, desenfadado pero
exacto: a veces elemental, a veces no tanto.
exacto: a veces elemental, a veces no tanto.
PRÁCTICO
PRÁCTICO
Página 3/297
3/297
Página
¿A QUIÉN VA DIRIGIDO ESTE LIBRO?
¿A QUIÉN VA DIRIGIDO ESTE LIBRO?
sólo nos encontramos
contramos ante
Insisto: no sólo nos en
No debemos engañarnos: las técnicas de OOP (y por tanto de C++, al que
No debemos engañarnos: las técnicas de OOP (y por tanto de C++, al que
ya desde ahora deberemos acostumbrarnos a considerar como bien distinto
ya desde ahora deberemos acostumbrarnos a considerar como bien distinto
de C) son difíciles de asimilar.
de C) son difíciles de asimilar. Insisto: no
ante unun
área compleja, sino prolija, con abundancia de estándares y sumida en un
área compleja, sino prolija, con abundancia de estándares y sumida en un
continuo cambio evolutivo. Las experiencias en U.S.A. indican que los
continuo cambio evolutivo. Las experiencias en U.S.A. indican que los
estudiantes tardan de seis a nueve meses (si no más) en asimilar
estudiantes tardan de seis a nueve meses (si no más) en asimilar
verdaderamente y poner en práctica de forma efectiva los conceptos,
verdaderamente y poner en práctica de forma efectiva los conceptos,
técnicas y metodologías aprendidas. Así que debo suponer que el lector
técnicas y metodologías aprendidas. Así que debo suponer que el lector
tendrá conocimientos de algún lenguaje estructurado, como Fortran, Pascal,
tendrá conocimientos de algún lenguaje estructurado, como Fortran, Pascal,
C, etc. Dado que pretendemos trabajar en C++ y que este lenguaje
C, etc. Dado que pretendemos trabajar en C++ y que este lenguaje
comparte muchas de las bases de C, sería deseable que el lector conociera al
comparte muchas de las bases de C, sería deseable que el lector conociera al
menos las bases del lenguaje C, aunque lo ideal sería tener alguna
menos las bases del lenguaje C, aunque lo ideal sería tener alguna
experiencia en ANSI C. De cualquier forma existe una gran profusión de
experiencia en ANSI C. De cualquier forma existe una gran profusión de
textos didácticos sobre C y ANSI C, por lo que se obviarán las explicaciones
textos didácticos sobre C y ANSI C, por lo que se obviarán las explicaciones
sobre las construcciones en tales lenguajes.
sobre las
construcciones en tales lenguajes.
¿QUÉ MATERIAL SE NECESITA?
¿QUÉ MATERIAL SE NECESITA?
Debo insistir en un tópico: sólo programando se aprende a programar. Y
Debo insistir en un tópico: sólo programando se aprende a programar. Y
esto es aún más cierto, si cabe, en C++. El lector deberá contar con un
esto es aún más cierto, si cabe, en C++. El lector deberá contar con un
compilador que
le permita chequear el código escrito: muchos
compilador que
le permita chequear el código escrito: muchos
programadores de C se quedarían asombrados al ver la larguísima letanía de
programadores de C se quedarían asombrados al ver la larguísima letanía de
errores y
errores y warnings
warnings que aparecerían al compilar como C++ su código C. La
que aparecerían al compilar como C++ su código C. La
creciente complejidad de las implementaciones C++ exige cada vez más
creciente complejidad de las implementaciones C++ exige cada vez más
requerimientos hardware. El lector necesitará, pues, de un compilador que
requerimientos hardware. El lector necesitará, pues, de un compilador que
soporte, preferiblemente, la versión 3.0 del AT&T C++, a la vez que
soporte, preferiblemente, la versión 3.0 del AT&T C++, a la vez que
máquina suficiente para soportarlo, junto con las pertinentes librerías de
máquina suficiente para soportarlo, junto con las pertinentes librerías de
clases, como más adelante veremos.
clases, como más adelante veremos.
¿QUÉ OBJETIVO SE PERSIGUE?
¿QUÉ OBJETIVO SE PERSIGUE?
Sorprende que en la iniciación a cualquiera de los tópicos de OOP el
Sorprende que en la iniciación a cualquiera de los tópicos de OOP el
principiante siempre se encuentre con introducciones, preámbulos e incluso
principiante siempre se encuentre con introducciones, preámbulos e incluso
introducciones de
introducciones de
introducciones. Bien, esto es desafortunadamente
introducciones. Bien, esto es desafortunadamente
irremediable: es necesario cambiar muchas cosas (entre ellas la "forma de
irremediable: es necesario cambiar muchas cosas (entre ellas la "forma de
pensar" del programador) para poder aplicar eficientemente uno o dos
pensar" del programador) para poder aplicar eficientemente uno o dos
conceptos clave. Dado que se supone, sobre todo en C++ y Object Pascal,
conceptos clave. Dado que se supone, sobre todo en C++ y Object Pascal,
que el
interesado posee conocimientos previos de programación
que el
interesado posee conocimientos previos de programación
estructurada, buena parte del tiempo se emplea repitiendo: ¡olvídese de
estructurada, buena parte del tiempo se emplea repitiendo: ¡olvídese de
cómo lo estaba haciendo: piense en objetos! Esto es exactamente, pues, lo
cómo lo estaba haciendo: piense en objetos! Esto es exactamente, pues, lo
que se pretende en este libro: sumerger al lector en un nuevo lenguaje
que se pretende en este libro: sumerger al lector en un nuevo lenguaje
(C++) pero siempre desde el punto de vista de la OOP, lo que ayudaría a
(C++) pero siempre desde el punto de vista de la OOP, lo que ayudaría a
que profundizara más tarde en los tópicos introducidos mediante el uso de
que profundizara más tarde en los tópicos introducidos mediante el uso de
algunos de tantos excelentes textos sobre el tema. Se pretende, por tanto,
algunos de tantos excelentes textos sobre el tema. Se pretende, por tanto,
PRÁCTICO
PRÁCTICO
Página 4/297
4/297
Página
guiar
guiar al principiante entre el oscurantismo y la verdadera complejidad de un
al principiante entre el oscurantismo y la verdadera complejidad de un
nuevo lenguaje y un novedoso (sólo para él, por supuesto) paradigma: la
nuevo lenguaje y un novedoso (sólo para él, por supuesto) paradigma: la
Programación Orientada-a-Objetos. Piénsese que un no muy extenso detalle
Programación Orientada-a-Objetos. Piénsese que un no muy extenso detalle
sobre, por ejemplo, la característica de
sobre, por ejemplo, la característica de templates
templates (plantillas) de C++ ocupa
(plantillas) de C++ ocupa
la mayor parte de un magnífico texto de Robert Murray sobre el leng
Comentarios de: C++/OOP - Un enfoque práctico (0)
No hay comentarios