C++ 캡슐화


캡슐화

캡슐화 의 의미는 "민감한" 데이터가 사용자에게 숨겨져 있는지 확인하는 것입니다. 이를 달성하려면 클래스 변수/속성을 다음과 같이 선언해야 합니다 private(클래스 외부에서 액세스할 수 없음). 다른 사람들이 private 멤버의 값을 읽거나 수정하도록 하려면 public getset 메서드를 제공할 수 있습니다.


비공개 회원 액세스

개인 속성에 액세스하려면 공개 "get" 및 "set" 메소드를 사용하십시오.

예시

#include <iostream>
using namespace std;

class Employee {
  private:
    // Private attribute
    int salary;

  public:
    // Setter
    void setSalary(int s) {
      salary = s;
    }
    // Getter
    int getSalary() {
      return salary;
    }
};

int main() {
  Employee myObj;
  myObj.setSalary(50000);
  cout << myObj.getSalary();
  return 0;
}

설명된 예

salary속성은 액세스 private가 제한된 입니다.

public setSalary()메소드는 매개변수( s)를 가져와 속성에 할당합니다 salary(salary = s).

public getSalary()메서드는 private salary속성의 값을 반환합니다.

내부 에서 우리는 클래스 main()의 객체를 생성합니다 . Employee이제 setSalary()메서드를 사용하여 private 속성 값을 로 설정할 수 있습니다 50000. 그런 다음 getSalary()객체의 메서드를 호출하여 값을 반환합니다.


왜 캡슐화인가?

  • 클래스 속성을 비공개로 선언하는 것은 좋은 습관으로 간주됩니다(가능한 한 자주). 캡슐화는 다른 부분에 영향을 주지 않고 코드의 한 부분을 변경할 수 있으므로 데이터를 더 잘 제어할 수 있습니다.
  • 데이터 보안 강화