정보은닉은 객체지향 언어적 요소를 활용하여 객체에 대한 구체적인 정보를 노출시키지 않도록 하는 기법. 이때, 정보은닉 == 캡슐화가 아님
정보은닉 기법중 하나가 캡슐화이다.
접근제어 키워드
- private
- public
- protected
클래스를 정의하는데 있어서 관련있는 데이터 및 함수를 하나로 묶는것이다.
캡슐화를 함으로써 정보 은닉도 함께 가져오는 효과를 가져오기도 한다.
#include <iostream>
using namespace std;
class SinivelCap
{
public:
void Take() const { cout << "콧물이 싹~ 납니다." << endl; }
};
class SneezeCap
{
public:
void Take() const { cout << "재채기가 맞습니다." << endl; }
};
class SnuffleCap
{
public:
void Take() const { cout << "코가 뻥 뚫립니다." << endl; }
};
class CONTAC600
{
private:
SinivelCap sin;
SneezeCap sne;
SnuffleCap snu;
public:
void Take() const
{
sin.Take();
sne.Take();
snu.Take();
}
};
class ColdPatient
{
public:
void TakeCONTAC600(const CONTAC600& cap) const { cap.Take(); }
};
int main()
{
CONTAC600 cap;
ColdPatient sufferer;
sufferer.TakeCONTAC600(cap);
return 0;
}