C++ Rookiss Part1 C++ 프로그래밍 입문 : 은닉성
🙇♀️은닉성
- 은닉성(Data Hiding) = 캡슐화(Encapsulation)
- 몰라도 되는 것은 깔끔하게 숨기겠다!
- 숨기는 이유
- 정말 위험하고 건드리면 안되는 경우
- 다른 경로로 접근하길 원하는 경우
🪐은닉성
public : 모두 공개 protected : 자식에게만 공개 private : 자신만 사용
class Berserker
{
public: // (멤버) 접근 지정자
int GetHp() { return _hp; }
void SetHp(int hp)
{
_hp = hp;
if (_hp <= 50)
SetBerserkerMode();
}
private:
void SetBerserkerMode()
{
cout << "BerserkerMode!" << endl;
}
private:
int _hp = 100;
};
이때 public
은 밑에 다른 접근 지정자가 나올 때 까지 유효하다.
캡슐화
- 연관된 데이터와 함수를 논리적으로 묶어놓은 것
상속 접근 지정자 : 다음 세대한테 부모님의 유산을 어떻게 물려줄지?
- 부모님한테 물려받은 유산을 꼭 나의 자손들한테도 똑같이 물려줘야 하진 않음
- public : 공개적 상속. 부모님의 유산 설계 그대로 (public -> public, protected -> protected)
- protected : 보호받는 상속. 내 자손들한테만 물려주기 (public -> protected, protected -> protected)
- private : 개인적인 상속. 나까지만 잘 쓰고 자손든한테는 아예 안 물려주기 (protected -> private, private -> private)
class Test : public Berserker // 상속 접근 지정자
{
};