logo

Programación orientada a objetos en C++

Programación orientada a objetos: como sugiere el nombre, utiliza objetos en la programación. La programación orientada a objetos tiene como objetivo implementar entidades del mundo real como herencia, ocultación, polimorfismo, etc. en la programación. El objetivo principal de la programación orientada a objetos es unir los datos y las funciones que operan sobre ellos para que ninguna otra parte del código pueda acceder a estos datos excepto esa función.

Hay algunos conceptos básicos que actúan como componentes básicos de la programación orientada a objetos, es decir,



  1. Clase
  2. Objetos
  3. Encapsulación
  4. Abstracción
  5. Polimorfismo
  6. Herencia
  7. Enlace dinámico
  8. Paso de mensajes

Características de un lenguaje de programación orientado a objetos

Concepto de OOPS en C++

¿Qué es svn pago?

Clase

El componente básico de C++ que conduce a la programación orientada a objetos es una clase. Es un tipo de datos definido por el usuario, que contiene sus propios miembros de datos y funciones miembro, a los que se puede acceder y utilizar creando una instancia de esa clase. Una clase es como un modelo para un objeto. Por ejemplo: considere la clase de automóviles. Puede haber muchos automóviles con diferentes nombres y marcas, pero todos compartirán algunas propiedades comunes, como que todos tendrán 4 ruedas, límite de velocidad, rango de kilometraje, etc. Entonces, aquí, el automóvil es la clase y las ruedas, los límites de velocidad. y el kilometraje son sus propiedades.

  • Una clase es un tipo de datos definido por el usuario que tiene miembros de datos y funciones miembro.
  • Los miembros de datos son las variables de datos y las funciones miembro son las funciones utilizadas para manipular estas variables. Estos miembros de datos y funciones miembro definen las propiedades y el comportamiento de los objetos en una clase.
  • En el ejemplo anterior de clase Auto, el miembro de datos será el límite de velocidad, el kilometraje, etc. y las funciones del miembro pueden aplicar frenos, aumentar la velocidad, etc.

Podemos decir que un Clase en C++ es un plano que representa un grupo de objetos que comparten algunas propiedades y comportamientos comunes.



Objeto

Un Objeto es una entidad identificable con algunas características y comportamiento. Un objeto es una instancia de una clase. Cuando se define una clase, no se asigna memoria, pero cuando se crea una instancia (es decir, se crea un objeto), se asigna memoria.

C++
// C++ Program to show the syntax/working of Objects as a // part of Object Oriented PProgramming #include  using namespace std; class person {  char name[20];  int id; public:  void getdetails() {} }; int main() {  person p1; // p1 is a object  return 0; }>

Los objetos ocupan espacio en la memoria y tienen una dirección asociada como un registro en pascal o estructura o unión. 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 detalles de los datos o códigos de cada uno, basta con saber el tipo de mensaje aceptado y el tipo de respuesta devuelta por los objetos.

Para saber más sobre los objetos y clases de C++, consulte este artículo: Clases y objetos de C++



Encapsulación

En términos normales, la encapsulación se define como agrupar datos e información en una sola unidad. En programación orientada a objetos, la encapsulación se define como unir los datos y las funciones que los manipulan. Considere un ejemplo de encapsulación de la vida real: en una empresa, hay diferentes secciones como la sección de cuentas, la sección de finanzas, la sección de ventas, etc. La sección de finanzas maneja todas las transacciones financieras y mantiene registros de todos los datos relacionados con las finanzas. De manera similar, la sección de ventas maneja todas las actividades relacionadas con las ventas y mantiene registros de todas las ventas. Ahora puede surgir una situación en la que, por alguna razón, un funcionario de la sección de finanzas necesite todos los datos sobre las ventas en un mes en particular. En este caso no se le permite acceder directamente a los datos de la sección de ventas. Primero tendrá que ponerse en contacto con algún otro funcionario de la sección de ventas y luego pedirle que le proporcione los datos concretos. Esto es lo que es la encapsulación. Aquí los datos de la sección de ventas y los empleados que pueden manipularlos están agrupados en una sección de ventas de un solo nombre.

Encapsulación en C++ con ejemplos

Encapsulación en C++

La encapsulación también conduce a abstracción de datos u ocultación de datos . El uso de encapsulación también oculta los datos. En el ejemplo anterior, los datos de cualquiera de las secciones como ventas, finanzas o cuentas están ocultos de cualquier otra sección.

Para saber más sobre la encapsulación, consulte este artículo: Encapsulación en C++

Abstracción

La abstracción de datos es una de las características más esenciales e importantes de la programación orientada a objetos en C++. Abstracción significa mostrar sólo información esencial y ocultar los detalles. La abstracción de datos se refiere a proporcionar solo información esencial sobre los datos al mundo exterior, ocultando los detalles de fondo o la implementación. Considere un ejemplo de la vida real de un hombre conduciendo un automóvil. El hombre sólo sabe que al presionar el acelerador aumentará la velocidad del automóvil o que al aplicar los frenos se detendrá el automóvil, pero no sabe cómo al presionar el acelerador la velocidad en realidad aumenta, no conoce el mecanismo interno del automóvil o la implementación de un acelerador, frenos, etc. en el coche. Esto es lo que es la abstracción.

  • Abstracción usando clases : Podemos implementar Abstracción en C++ usando clases. La clase nos ayuda a agrupar miembros de datos y funciones miembro utilizando especificadores de acceso disponibles. Una Clase puede decidir qué miembro de datos será visible para el mundo exterior y cuál no.
  • Abstracción en archivos de encabezado : Un tipo más de abstracción en C++ pueden ser los archivos de encabezado. Por ejemplo, considere el método pow() presente en el archivo de encabezado math.h. Siempre que necesitamos calcular la potencia de un número, simplemente llamamos a la función pow() presente en el archivo de encabezado math.h y pasamos los números como argumentos sin conocer el algoritmo subyacente según el cual la función realmente calcula la potencia de los números. .

Para saber más sobre la abstracción de C++, consulte este artículo: Abstracción en C++

Polimorfismo

La palabra polimorfismo significa tener muchas formas. En palabras simples, podemos definir el polimorfismo como la capacidad de un mensaje de mostrarse en más de una forma. Una persona al mismo tiempo puede tener diferentes características. Un hombre es al mismo tiempo padre, marido y empleado. Entonces la misma persona posee un comportamiento diferente en diferentes situaciones. Esto se llama polimorfismo. 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 de operadores y funciones.

  • Sobrecarga del operador : El proceso de hacer que un operador muestre diferentes comportamientos en diferentes instancias se conoce como sobrecarga del operador.
  • Sobrecarga de funciones : La sobrecarga de funciones consiste en utilizar un único nombre de función para realizar diferentes tipos de tareas. El polimorfismo se utiliza ampliamente en la implementación de la herencia.

Ejemplo : Supongamos que tenemos que escribir una función para sumar algunos números enteros, a veces hay 2 números enteros y otras veces hay 3 números enteros. Podemos escribir el método de suma con el mismo nombre y tener diferentes parámetros, el método en cuestión se llamará según los parámetros.

Polimorfismo en C++ con ejemplo

Polimorfismo en C++

Para saber más sobre el polimorfismo, consulte este artículo: Polimorfismo en C++

Herencia

La capacidad de una clase para derivar propiedades y características de otra clase se llama Herencia . La herencia es una de las características más importantes de la programación orientada a objetos.

  • Subclase : La clase que hereda propiedades de otra clase se llama Subclase o Clase Derivada.
  • Superclase : La clase cuyas propiedades son heredadas por una subclase se llama Clase Base o Superclase.
  • Reutilizabilidad : La herencia admite el concepto de reutilización, es decir, cuando queremos crear una nueva clase y ya existe una clase que incluye parte del código que queremos, podemos derivar nuestra nueva clase a partir de la clase existente. Al hacer esto, estamos reutilizando los campos y métodos de la clase existente.

Ejemplo : Perro, Gato, Vaca pueden ser Clases Derivadas de Clases Base de Animales.

colores java
Herencia en C++ con ejemplo

Herencia en C++

Para saber más sobre la herencia, consulte este artículo: Herencia en C++

vlc descargar videos de youtube

Enlace dinámico

En el enlace dinámico, el código que se ejecutará en respuesta a la llamada a la función se decide en tiempo de ejecución. C++ tiene funciones virtuales para apoyar esto. Debido a que el enlace dinámico es flexible, evita los inconvenientes del enlace estático, que conectaba la llamada de función y la definición en el momento de la compilación.

Ejemplo:

C++
// C++ Program to Demonstrate the Concept of Dynamic binding // with the help of virtual function #include  using namespace std; class GFG { public:  void call_Function() // function that call print  {  print();  }  void print() // the display function  {  cout << 'Printing the Base class Content' << endl;  } }; class GFG2 : public GFG // GFG2 inherit a publicly { public:  void print() // GFG2's display  {  cout << 'Printing the Derived class Content'  << endl;  } }; int main() {  GFG geeksforgeeks; // Creating GFG's object  geeksforgeeks.call_Function(); // Calling call_Function  GFG2 geeksforgeeks2; // creating GFG2 object  geeksforgeeks2.call_Function(); // calling call_Function  // for GFG2 object  return 0; }>

Producción
Printing the Base class Content Printing the Base class Content>

Como podemos ver, la función print() de la clase principal se llama incluso desde el objeto de clase derivada. Para resolver esto utilizamos funciones virtuales.

Ejemplo anterior con función virtual:

C++
#include using namespace std; class GFG { public:  void call_Function() // function that call print  {  print();  }  virtual void print() // using 'virtual' for the display function   {  cout << 'Printing the Base class Content' << endl;  } }; class GFG2 : public GFG // GFG2 inherit a publicly { public:  void print() // GFG2's display  {  cout << 'Printing the Derived class Content'  << endl;  } }; int main() {  GFG geeksforgeeks; // Creating GFG's object  geeksforgeeks.call_Function(); // Calling call_Function  GFG2 geeksforgeeks2; // creating GFG2 object  geeksforgeeks2.call_Function(); // calling call_Function  // for GFG2 object  return 0; } //this code is contributed by Md Nizamuddin>

Producción
Printing the Base class Content Printing the Derived class Content>


Paso de mensajes

Los objetos se comunican entre sí enviando y recibiendo información. Un mensaje para un objeto es una solicitud para la ejecución de 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á.

Ejemplo:

C++
#include  using namespace std; // Define a Car class with a method to display its speed class Car { public:  void displaySpeed(int speed) {  cout << 'The car is moving at ' << speed << ' km/h.' << endl;  } }; int main() {  // Create a Car object named myCar  Car myCar;  // Send a message to myCar to execute the displaySpeed method  int currentSpeed = 100;  myCar.displaySpeed(currentSpeed);  return 0; } //this code is contributed by Md Nizamuddin>


Artículos relacionados :