반응형
목차
C++ Programming 캡슐화란? (Encapsulation)
앞서 포스트에서 public과 private에 대해 알아보았습니다. public의 사용방법은 알았으나 private의 실제 예제에 대해서는 다루지 않았습니다.
https://scribblinganything.tistory.com/425
캡술화는 private의 사용과 관련되어 있습니다. private은 해당 class에서만 접근이 가능 했습니다. public은 클래스 외부에서도 접근이 가능했습니다. 즉, 캡슐화는 private이라는 캡슐에 보호하고 싶은 인자를 보호하고 외부에서 캡슐을 사용할때는 프로그래머가 짜놓은 방식으로만 사용하게 만든 것입니다.
우리가 계산기를 사용할 때 버튼을 입력하여 원하는 값을 얻습니다. 하지만 계산기 내부 로직을 알수가 없습니다. 이러한 과정도 일종의 캡슐화로 볼 수 있습니다.
- Private 을 사용해서 보호하고 싶은 인자 캡슐화
- 동일 클래스 내에 Public을 사용해서 Private의 인자에 대한 접근 방식 설정
C++ Programming Encapsulation, Private 으로 구현 하기
코드>>
#include <iostream>
using namespace std;
class EX_class {
private:
int a_var;
public:
void set_var(int x) {
a_var = x;
}
int return_var() {
return a_var;
}
};
int main() {
EX_class EX_object;
EX_object.set_var(5);
cout << EX_object.return_var() << "\n";
return 0;
}
라인 5~6: private을 사용해서 캡슐화하여 int a_var의 접근을 제한 합니다.
라인 7~13: a_var의 값을 설정하고 return하는 method를 public으로 접근 가능하게 구현 합니다.
라인 18~19: a_var의 설정과 출력만 가능하고 그 외 변경은 불가능 합니다.
결과>>
5
반응형
'C언어 C++ Programming' 카테고리의 다른 글
[C++언어]Class의 Protected 수정, 출력하여 사용하는 법 (예제 포함) (0) | 2022.01.04 |
---|---|
[C++언어] 상속이란? 예제로 살펴보기(Inheritance) (0) | 2022.01.04 |
[C++언어]Method와 ::(쌍클론,범위 지정 연산자, Scope resolution operator) (0) | 2021.12.22 |
[C++언어] Public, Private 차이와 사용방법 (0) | 2021.12.21 |
[C/C++언어]함수 입력 값, Function(input, &input, input=x) (0) | 2021.12.17 |