정보은닉과 캡슐화

sz L·2023년 3월 24일
0

C++

목록 보기
14/40
post-thumbnail

정보은닉

정보은닉은 객체지향 언어적 요소를 활용하여 객체에 대한 구체적인 정보를 노출시키지 않도록 하는 기법. 이때, 정보은닉 == 캡슐화아님
정보은닉 기법중 하나가 캡슐화이다.

  • 사용자가 굳이 알 필요가 없는 불필요한 정보는 숨김으로써 사용자는 최소한의 정보만으로 프로그램을 쉽게 사용할 수 있다
  • 코드의 재활용성을 높이고 에러발생을 최소화하며 다이나믹한 속성을 높이기 위해서 캡슐화가 필요하다

접근제어 키워드

  • 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;
}

profile
가랑비는 맞는다 하지만 폭풍은 내 것이야

0개의 댓글