🙇‍♀️은닉성

  • 은닉성(Data Hiding) = 캡슐화(Encapsulation)
    • 몰라도 되는 것은 깔끔하게 숨기겠다!
  • 숨기는 이유
    1. 정말 위험하고 건드리면 안되는 경우
    2. 다른 경로로 접근하길 원하는 경우

🪐은닉성

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 // 상속 접근 지정자
{

};

태그:

카테고리:

업데이트: