Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Encapsulación de datos en C++

Todos los programas de C++ se componen de los siguientes dos elementos fundamentales:

La encapsulación es un concepto de Programación Orientada a Objetos que une los datos y las funciones que manipulan los datos, y que los mantiene a salvo de la interferencia externa y el uso indebido. La encapsulación de datos condujo al importante concepto OOP de ocultación de datos .

Encapsulación de datos es un mecanismo para agrupar los datos y las funciones que los utilizan y la abstracción de datos es un mecanismo para exponer solo las interfaces y ocultar los detalles de implementación del usuario.

C++ admite las propiedades de encapsulación y ocultación de datos mediante la creación de tipos definidos por el usuario, llamados clases . Ya hemos estudiado que una clase puede contener private, protected y público miembros De forma predeterminada, todos los elementos definidos en una clase son privados. Por ejemplo −

class Box {
   public:
      double getVolume(void) {
         return length * breadth * height;
      }

   private:
      double length;      // Length of a box
      double breadth;     // Breadth of a box
      double height;      // Height of a box
};

Las variables largo, ancho y alto son privadas . Esto significa que solo pueden acceder a ellos otros miembros de la clase Box, y ninguna otra parte de su programa. Esta es una forma de lograr la encapsulación.

Para hacer partes de una clase públicas (es decir, accesibles a otras partes de su programa), debe declararlos después de public palabra clave. Todas las variables o funciones definidas después del especificador público son accesibles para todas las demás funciones de su programa.

Hacer que una clase sea amiga de otra expone los detalles de implementación y reduce la encapsulación. Lo ideal es mantener la mayor cantidad de detalles de cada clase ocultos de todas las demás clases como sea posible.

Ejemplo de encapsulación de datos

Cualquier programa de C++ en el que implemente una clase con miembros públicos y privados es un ejemplo de encapsulación y abstracción de datos. Considere el siguiente ejemplo −

Demostración en vivo
#include <iostream>
using namespace std;

class Adder {
   public:
      // constructor
      Adder(int i = 0) {
         total = i;
      }
      
      // interface to outside world
      void addNum(int number) {
         total += number;
      }
      
      // interface to outside world
      int getTotal() {
         return total;
      };
   
   private:
      // hidden data from outside world
      int total;
};

int main() {
   Adder a;
   
   a.addNum(10);
   a.addNum(20);
   a.addNum(30);

   cout << "Total " << a.getTotal() <<endl;
   return 0;
}

Cuando el código anterior se compila y ejecuta, produce el siguiente resultado −

Total 60

La clase anterior suma números y devuelve la suma. Los miembros públicos addNum y obtenerTotal son las interfaces con el mundo exterior y un usuario necesita conocerlas para usar la clase. El miembro privado total es algo que está oculto al mundo exterior, pero es necesario para que la clase funcione correctamente.

Estrategia de diseño

La mayoría de nosotros hemos aprendido a hacer que los miembros de la clase sean privados de forma predeterminada a menos que realmente necesitemos exponerlos. Eso es solo una buena encapsulación .

Esto se aplica con mayor frecuencia a los miembros de datos, pero se aplica por igual a todos los miembros, incluidas las funciones virtuales.


Lenguaje C

  1. Tipos de datos de C++
  2. Operadores de C++
  3. Clases y objetos de C++
  4. Plantillas de clase de C++
  5. Encapsulación de Java
  6. Tipo de datos Char de C++ con ejemplos
  7. Java - Encapsulación
  8. Java - Estructuras de datos
  9. Clases de almacenamiento en C++
  10. Estructuras de datos de C++
  11. Polimorfismo en C++