반응형
Intro
안녕하세요. 이번 포스팅에서는 C++의 장점 중 하나인 캡슐화에 대해 알아보도록 하겠습니다. 캡슐화는 클래스가 갖고 있는 멤버의 일부를 감춰 클래스를 블랙박스 화하는 것입니다. 즉, 사용자에게 가치가 없는 멤버를 감추는 것입니다. 보통 학부 때 교수님들이 캡슐화에 대해 설명할 때 리모컨에 빚대어 설명을 하십니다. 우리가 채널을 바꿀 때 누르는 버튼은 공개되어 있지만, 실제 버튼을 누르고 TV에 신호 주는 건 캡슐화로 감춰져 있습니다. 즉, 리모컨이 TV로 채널 변경 신호를 보내는걸 굳이 알 필요가 없기 때문입니다. 그렇기 때문에 캡슐화의 목적은 불필요한 것은 캡슐화하여 감추고 프로그래밍을 효율화하는 테크닉입니다.
접근 지정어
접근 지정어 : 클래스를 사용하는 측으로부터 멤버를 이용할 수 있는가의 여부를 결정한다. 접근 지정어에는 public; private; protected 3가지가 있다.
- public : 지정된 멤버 공개
- private : 지정된 멤버 비공개. 접근 지정어를 생략했을 때 디폴트는 private.
- protected : 클래스가 사용되는 방법에 따라서 private: 혹은 public: 어느 쪽인가로 이루어지는 것. 클래스의 객체를 만들어 사용한다면 private:와 같은 의미가 되고 클래스를 상속하여 사용한다면 public:과 동일한 의미가 된다.
UML 클래스 다이어그램에 멤버
- UML의 클래스 다이어그램에서는 public:는 +, private:는 -, protected:는 #으로 나타낸다.
마무리
접근 지정어가 없는 프로그래밍 언어에서는 프로그램 속에 존재하는 변수나 함수를 프로그램 이외의 부분에서 항상 이용할 수 있게 됩니다. 접근 지정어를 사용하는 장점은 특정한 변수나 멤버 함수 이용을 불가능하게 하는 것에 있습니다. 즉, 크래스의 사용자에게 이용할 가치가 없는 멤버를 감추는 것입니다. 멤버를 감추는 것을 캡슐화라고 합니다.
그럼 이상으로 포스팅을 마치겠습니다. 감사합니다.
반응형
'[C/C++/MFC]' 카테고리의 다른 글
시리얼 통신(Serial Communication) C++ (0) | 2023.07.19 |
---|---|
[C++ Visual studio 2019 & Google Test 연동 방법(Unit test)] (2) | 2021.07.17 |
[C++ 다형성, 오버로드 vs 오버라이드] (0) | 2021.05.23 |
[C++ 객체 지향 프로그래밍 특징(상속, 캡슐화, 다형성] (0) | 2021.05.09 |
[C++ 절차지향 프로그래밍 vs 객체지향 프로그래밍] (0) | 2021.05.08 |