Programación orientada a objetos en C ++

La programación orientada a objetos, OOP para abreviar, tiene como objetivo implementar entidades del mundo real como herencia, ocultación y polimorfismo en la programación.

El objetivo principal de OOP es unir los datos y las funciones que operan en ellos de modo que ninguna otra parte del código pueda acceder a estos datos excepto esa función.

Conozcamos las diferentes características de un lenguaje de programación orientado a objetos.

Objeto:

Los objetos son entidades básicas en tiempo de ejecución en un sistema orientado a objetos. Los objetos son instancias de una clase que son tipos de datos definidos por el usuario.

class person { char name[20]; int id; public: void getdetails(){} }; int main() { person p1; //p1 is an object }

Los objetos ocupan espacio en la memoria y tienen una dirección asociada como un registro en pascal o una estructura o unión en C.

Cuando se ejecuta un programa, los objetos interactúan enviándose mensajes entre sí.

Cada objeto contiene datos y código para manipular los datos. Los objetos pueden interactuar sin tener que conocer los detalles de los datos o el código de los demás. Basta con conocer el tipo de mensaje aceptado y el tipo de respuesta devuelta por los objetos.

Clase:

Una clase es un plano de datos y funciones o métodos. La clase no ocupa ningún espacio.

class class_name { private: //data members and member functions declarations public: //data members and member functions declarations protected: //data members and member functions declarations };

La clase es un tipo de datos definido por el usuario, como estructuras y uniones en C.

Por defecto, las variables de clase son privadas, pero en caso de estructura son públicas. En el ejemplo anterior, persona es una clase.

Encapsulación y abstracción de datos:

Recopilar (combinar) datos y funciones en una sola unidad se conoce como encapsulación. Los datos no son accesibles para el mundo exterior y solo aquellas funciones que envuelven la clase pueden acceder a ellos. Este aislamiento de los datos del acceso directo por parte del programa se denomina ocultación de datos o ocultación de información.

La abstracción de datos se refiere a proporcionar solo la información necesaria al mundo exterior y ocultar los detalles de implementación.

Por ejemplo, considere una clase Complex con funciones públicas getReal () y getImag (). Podemos implementar la clase como una matriz de tamaño 2 o como dos variables.

La ventaja de la abstracción es que podemos cambiar la implementación en cualquier momento y los usuarios de la clase Complex no se verán afectados ya que la interfaz de nuestro método sigue siendo la misma. Si nuestra implementación hubiera sido pública, no habríamos podido cambiarla.

Herencia:

La herencia es el proceso mediante el cual los objetos de una clase adquieren las propiedades de los objetos de otra clase. Apoya el concepto de clasificación jerárquica.

La herencia proporciona capacidad de reutilización. Esto significa que podemos agregar características adicionales a una clase existente sin modificarla.

Polimorfismo:

El polimorfismo se refiere a la capacidad de adoptar más de una forma. Una operación puede exhibir diferentes comportamientos en diferentes instancias. El comportamiento depende de los tipos de datos utilizados en la operación.

C ++ admite la sobrecarga del operador y la sobrecarga de funciones. La sobrecarga del operador es el proceso de hacer que un operador muestre diferentes comportamientos en diferentes instancias. La sobrecarga de funciones usa un solo nombre de función para realizar diferentes tipos de tareas. El polimorfismo se usa ampliamente en la implementación de la herencia.

Encuadernación dinámica:

En el enlace dinámico, el código que se ejecutará en respuesta a una llamada de función se decide en tiempo de ejecución. C ++ tiene funciones virtuales para respaldar esto.

Paso de mensajes:

Los objetos se comunican entre sí enviándose y recibiendo información entre sí. Un mensaje para un objeto es una solicitud para que se ejecute un procedimiento y, por lo tanto, invocará una función en el objeto receptor que genera los resultados deseados.

El paso de mensajes implica especificar el nombre del objeto, el nombre de la función y la información que se enviará.

Más información

Conceptos de programación orientada a objetos: cómo pasar de cero a uno con objetos

Cómo explicar los conceptos de programación orientada a objetos a un niño de 6 años