object oriented programming c
Introducción a la programación orientada a objetos en C ++.
Con este tutorial, comenzamos una serie de tutoriales para aprender sobre C ++ como un lenguaje de programación orientado a objetos.
Como sabemos, antes de la programación orientada a objetos (OOP), los programas se escribían utilizando lenguajes de procedimiento. Los lenguajes procedimentales enfatizan las funciones. Los problemas más grandes se dividen en subproblemas más pequeños y se escriben como funciones.
=> Consulte aquí para explorar la lista completa de tutoriales de C ++.
Los lenguajes de procedimiento no prestaron atención a los datos. Como resultado, la posibilidad de no abordar el problema de manera efectiva era alta. Además, como los datos casi se descuidaron, la seguridad de los datos se vio fácilmente comprometida.
Todos estos inconvenientes de la programación procedimental fueron superados por la programación orientada a objetos.
En este tutorial, discutiremos los fundamentos de la programación orientada a objetos y, en resumen, todas las características de OOP.
Lo que vas a aprender:
- Programación orientada a objetos en C ++
- ¿Por qué C ++ es POO parcial?
- Funciones de programación orientada a objetos
- Ventajas de OOP
- Conclusión
- Lectura recomendada
Programación orientada a objetos en C ++
La programación orientada a objetos gira en torno a los datos. La principal unidad de programación de OOP es el objeto. Un objeto es una representación de una entidad en tiempo real y consta de datos y métodos o funciones que operan sobre datos. De esta manera, los datos y las funciones están estrechamente vinculados y se garantiza la seguridad de los datos.
En OOP, todo se representa como un objeto y cuando se ejecutan los programas, los objetos interactúan entre sí pasando mensajes. Un objeto no necesita conocer los detalles de implementación de otro objeto para comunicarse.
Además de los objetos, OOP admite varias características que se enumeran a continuación:
- Clases
- Encapsulamiento
- Abstracción
- Herencia
- Polimorfismo
Usando OOP, escribimos programas usando clases y objetos utilizando las características anteriores. Se dice que un lenguaje de programación es un verdadero lenguaje de programación orientado a objetos si todo lo que representa utiliza un objeto. Smalltalk es un lenguaje que es un lenguaje de programación puro orientado a objetos.
Por otro lado, se dice que los lenguajes de programación como C ++ y Java son lenguajes de programación parcialmente orientados a objetos.
¿Por qué C ++ es POO parcial?
El lenguaje C ++ fue diseñado con la intención principal de utilizar funciones orientadas a objetos en el lenguaje C.
Aunque el lenguaje C ++ admite las características de la programación orientada a objetos como clases, objetos, herencia, encapsulación, abstracción y polimorfismo, existen pocas razones por las cuales C ++ se clasifica como un lenguaje de programación parcial orientado a objetos.
la diferencia entre c y c ++
Presentamos algunas de estas razones a continuación:
# 1) La creación de clases / objetos es opcional
En C ++, la función principal es obligatoria y siempre está fuera de la clase. Por lo tanto, solo podemos tener una función principal en el programa y podemos prescindir de clases y objetos.
Esta es la primera violación del lenguaje Pure OOP donde todo se representa como un objeto.
# 2) Uso de variables globales
C ++ tiene un concepto de variables globales que se declaran fuera del programa y pueden ser accedidas por cualquier otra entidad del programa. Esto viola la encapsulación. Aunque C ++ admite la encapsulación con respecto a clases y objetos, no se ocupa de ello en el caso de variables globales.
# 3) Presencia de una función de amigo
C ++ admite una clase o función de amigo que se puede usar para acceder a miembros privados y protegidos de otras clases haciéndolos amigos. Esta es otra característica de C ++ que viola el paradigma OOP.
Para concluir, aunque C ++ admite todas las funciones de programación orientada a objetos mencionadas anteriormente, también proporciona funciones que pueden actuar como una solución para estas funciones, de modo que podamos prescindir de ellas. Esto convierte a C ++ en un lenguaje de programación parcial orientado a objetos.
Funciones de programación orientada a objetos
Aquí presentaremos varias funciones de programación orientada a objetos que se utilizan para la programación.
Clases y objetos
Un objeto es una unidad básica en la programación orientada a objetos. Un objeto contiene datos y métodos o funciones que operan sobre esos datos. Los objetos ocupan espacio en la memoria.
Una clase, por otro lado, es un plano del objeto. Por el contrario, un objeto se puede definir como una instancia de una clase. Una clase contiene un esqueleto del objeto y no ocupa ningún espacio en la memoria.
Tomemos un Ejemplo de un objeto de coche. Un objeto de automóvil llamado 'Maruti' puede tener datos como el color; marca, modelo, límite de velocidad, etc. y funciones como acelerar. Definimos otro objeto 'vado'. Esto puede tener datos y funciones similares a los del objeto anterior más algunas adiciones más.
De manera similar, podemos tener numerosos objetos de diferentes nombres con datos y funciones similares y algunas variaciones menores.
Por lo tanto, en lugar de definir estos datos y funciones similares en estos diferentes objetos, definimos un plano de estos objetos que es una clase llamada Coche. Cada uno de los objetos anteriores serán instancias de esta clase de automóvil.
Abstracción
La abstracción es el proceso de ocultar información irrelevante al usuario. Por ejemplo , cuando estamos conduciendo el automóvil, primero arrancamos el motor insertando una llave. No somos conscientes del proceso que se lleva a cabo en segundo plano para arrancar el motor.
Usando la abstracción en la programación, podemos ocultar al usuario detalles innecesarios. Al usar la abstracción en nuestra aplicación, el usuario final no se ve afectado incluso si cambiamos la implementación interna.
Encapsulamiento
La encapsulación es el proceso mediante el cual se agrupan los datos y los métodos o funciones que operan en ellos. Al hacer esto, los datos no son fácilmente accesibles para el mundo exterior. En OOP logramos la encapsulación al hacer que los miembros de datos sean privados y tener funciones públicas para acceder a estos miembros de datos.
Herencia
El uso de objetos de herencia de una clase puede heredar o adquirir las propiedades del objeto de otra clase. La herencia proporciona la posibilidad de reutilizar el código.
Como tal, podemos diseñar una nueva clase adquiriendo las propiedades y la funcionalidad de otra clase y, en este proceso, no necesitamos modificar la funcionalidad de la clase principal. Solo agregamos nueva funcionalidad a la clase.
Polimorfismo
Polimorfismo significa muchas formas.
El polimorfismo es una característica importante de la programación orientada a objetos y generalmente se implementa como sobrecarga del operador o sobrecarga de funciones. La sobrecarga del operador es un proceso en el que un operador se comporta de manera diferente en diferentes situaciones. De manera similar, en la sobrecarga de funciones, la misma función se comporta de manera diferente en diferentes situaciones.
Enlace dinámico
OOP admite el enlace dinámico en el que la llamada a la función se resuelve en tiempo de ejecución. Esto significa que el código que se ejecutará como resultado de una llamada de función se decide en tiempo de ejecución. Las funciones virtuales son un ejemplo de enlace dinámico.
Paso de mensajes
En OOP, los objetos se comunican entre sí mediante mensajes. Cuando los objetos se comunican, la información pasa de un objeto a otro. Un mensaje generalmente consta del nombre del objeto, el nombre del método y los datos reales que se enviarán a otro objeto.
Ventajas de OOP
Analicemos algunas de las ventajas de la programación orientada a objetos.
# 1) Reutilización
OOP permite reutilizar el código existente a través de la herencia. Podemos adquirir fácilmente la funcionalidad existente y mejorarla sin tener que volver a escribir el código. Esto da como resultado un código menos hinchado.
# 2) modularidad
árbol binario simple c ++
A medida que modularizamos el programa en OOP, es fácil modificar o solucionar problemas del programa si ocurre un problema o si se agrega una nueva característica o mejora. La modularización también ayuda a la claridad del código y lo hace más legible.
# 3) Flexibilidad
OOP nos ayuda con la programación flexible utilizando la función de polimorfismo. Como el polimorfismo adopta muchas formas, podemos tener operadores o funciones que trabajarán con muchos objetos y, por lo tanto, nos evitarán escribir diferentes funciones para cada objeto.
# 4) Mantenibilidad
Mantener el código es más fácil ya que es fácil agregar nuevas clases, objetos, etc. sin mucha reestructuración o cambios.
# 5) Ocultación de datos e información
OOP nos ayuda a ocultar los datos, lo que mantiene la información a salvo de fugas. Solo los datos necesarios para el buen funcionamiento del programa se exponen al usuario ocultando detalles intrínsecos.
Conclusión
OOP es el paradigma de programación más importante y flexible de la programación moderna. Es especialmente útil para modelar problemas del mundo real y, por lo tanto, es muy popular.
Hemos discutido las diversas características de OOP en este tutorial. A continuación, analizaremos todas estas características en detalle.
El siguiente tema de esta serie 'POO con C ++' se centrará en las clases y los objetos en detalle.
=> Haga clic aquí para ver la serie de capacitación Absolute C ++.
Lectura recomendada
- OOP Java: Introducción a la programación orientada a objetos en Java
- Tipos de datos C ++
- Las 10 mejores herramientas de ciencia de datos en 2021 para eliminar la programación
- Abstracción de datos en C ++
- Introducción a las estructuras de datos en C ++
- Tutorial de Unix Pipes: Pipes en la programación Unix
- Tutorial de QTP n. ° 8: aprenda sobre los modos de grabación de QTP, el espionaje de objetos y los repositorios de objetos
- 70+ MEJORES Tutoriales de C ++ para aprender programación C ++ GRATIS