산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C++의 데이터 캡슐화

모든 C++ 프로그램은 다음 두 가지 기본 요소로 구성됩니다. -

캡슐화는 데이터와 데이터를 조작하는 기능을 함께 묶고 외부 간섭과 오용으로부터 안전하게 유지하는 객체 지향 프로그래밍 개념입니다. 데이터 캡슐화는 데이터 은닉이라는 중요한 OOP 개념으로 이어졌습니다. .

데이터 캡슐화 데이터와 이를 사용하는 기능 및 데이터 추상화를 묶는 메커니즘입니다. 인터페이스만 노출하고 구현 세부 정보를 사용자에게 숨기는 메커니즘입니다.

C++는 클래스라고 하는 사용자 정의 유형 생성을 통해 캡슐화 및 데이터 숨김의 속성을 지원합니다. . 우리는 이미 클래스에 private, protected 및 공개 회원. 기본적으로 클래스에 정의된 모든 항목은 비공개입니다. 예를 들어 -

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
};

길이, 너비 및 높이 변수는 비공개입니다. . 이것은 Box 클래스의 다른 멤버만 액세스할 수 있으며 프로그램의 다른 부분에서는 액세스할 수 없음을 의미합니다. 이것이 캡슐화를 달성하는 한 가지 방법입니다.

클래스의 일부를 공개로 만들려면 (즉, 프로그램의 다른 부분에 액세스할 수 있음) public 다음에 선언해야 합니다. 예어. public 지정자 뒤에 정의된 모든 변수 또는 함수는 프로그램의 다른 모든 함수에서 액세스할 수 있습니다.

한 클래스를 다른 클래스의 친구로 만들면 구현 세부 정보가 노출되고 캡슐화가 줄어듭니다. 이상적인 것은 각 클래스의 세부 사항을 가능한 한 다른 모든 클래스에서 숨기는 것입니다.

데이터 캡슐화 예

public 및 private 멤버가 있는 클래스를 구현하는 모든 C++ 프로그램은 데이터 캡슐화 및 데이터 추상화의 예입니다. 다음 예를 고려하십시오 -

라이브 데모
#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;
}

위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. -

Total 60

위의 클래스는 숫자를 더하고 합계를 반환합니다. 공개 회원 addNum 및 getTotal 외부 세계에 대한 인터페이스이며 사용자는 클래스를 사용하기 위해 이를 알아야 합니다. 비공개 회원 총 외부 세계에는 숨겨져 있지만 클래스가 제대로 작동하려면 필요한 것입니다.

전략 설계

우리 대부분은 클래스 멤버를 실제로 노출해야 하는 경우가 아니면 기본적으로 클래스 멤버를 비공개로 만드는 방법을 배웠습니다. 그것은 좋은 캡슐화입니다. .

이는 데이터 구성원에게 가장 자주 적용되지만 가상 기능을 포함한 모든 구성원에게 동일하게 적용됩니다.


C 언어

  1. C++ 데이터 유형
  2. C++ 연산자
  3. C++ 클래스 및 개체
  4. C++ 클래스 템플릿
  5. 자바 캡슐화
  6. C++ Char 데이터 유형(예제 포함)
  7. 자바 - 캡슐화
  8. 자바 - 데이터 구조
  9. C++의 스토리지 클래스
  10. C++ 데이터 구조