산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
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

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

전략 설계

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

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


C 언어

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