본문 바로가기

Study/C++

[C++] Information Hiding

정보 은닉

  • 프로그래머는, 제한된 방법으로의 접근만을 허용하여 잘못된 값이 젖아되지 않도록 도와야 하고, 실수를 했을 때 실수가 쉽게 발견되어야 한다.
  • 보통 멤버변수를 Private로 선언하고, 해당 변수에 접근하는 함수를 별도로 정의하여 안전한 형태로 멤버변수의 접근을 유도한다.
  • 이러한 접근 함수는 GetXXX/SetXXX로 정의되어 있는데, 이러한 함수를 엑세스 함수(access function)라한다. 이들은 멤버변수를 private로 선언, 클래스 외부에서의 멤버변수 접근을 목적으로 정의되는 함수이다.
  • 맴버함수에 const를 선언할 경우, 해당 함수 내에서는 멤버변수에 저장된 값을 변경하지 않겠다는 말이다.
int GetX() const;
int GetY() const;
void ShowRecInfo() const;
  • 이러한 const 함수 내에서는 const가 아닌 함수의 호출에 제약이 생긴다.
class SimpleClass
{
private:
	int num;
    
public:
	void InitNum(int n)
    {
    	num = n;
    }
    int GetNum()
    {
    	return num;
    }
    void ShowNum() const
    {
    	cout << GetNum() << endl;	// Compile Error
    }
};

캡슐화

  • 캡슐화는 일관되게 적용할 수 있는 단순한 개념이 아닌, 구현하는 프로그램의 성격과 특성에 따라서 적용하는 범위가 달라지는, 정답이라는게 딱히 존재하지 않는 개념이다.
  • 적절한 캡슐화는 클래스를 간결하게 만들어주며, 정보 은닉에 큰 도움을 준다.

'Study > C++' 카테고리의 다른 글

[C++] Class, Array and this pointer  (0) 2023.10.06
[C++] Constructor & Destructor  (0) 2023.10.06
[C++] OOP; Object-Oriented Programming  (0) 2023.10.06
[C++] Structure  (0) 2023.10.06
[C++] Class & Object  (0) 2023.10.06