C++

상속문법(부모클래스 앞에 붙는 접근제한지정자)

Nin 2020. 12. 22. 10:52
class FightUnit
{
public:
   int publicInt;
protected:
   int protectedInt;
private:
   int privateInt;

public:
   void Fight(FightUnit& _Other)
   {
   
   }
};

class Player : public FightUnit
{

};

Player가 FightUnit을 상속받을때 부모클래스 앞에다 접근제한지정자를 써줄 수 있고

상속의 개념은 보이지는 않지만 부모의 멤버변수인 

publicInt,protectedInt를 멤버변수로 가지고 있는것이다.

이때 상속문법 앞에 붙는 접근제한 지정자는 다음의 의미를 가진다.

부모의 접근제한지정자랑 나의 접근제한지정자랑 비교해서

더 좁은 범위의 제한지정자를 따라가는것이다.

위의 코드로 본다면

publicInt와 public을 비교 = 둘다 public이니 public을 받는다.

protectedInt와 public을 비교 = protected이니 protected를 받는다.

class Player : protected FightUnit
{
};

만약 protected를 써서 상속을 받았다면 

publicint와 protected 비교 = protected로 받으니 protected : publicint가 되는것이다.

protected와 protectedInt 비교 = protected로 받는다  

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

깊은복사,얕은복사  (0) 2020.12.22
Is A 관계,Has A 관계  (0) 2020.12.22
방어코드,Assert  (0) 2020.12.19
순환참조,Inheritance(상속),업캐스팅  (0) 2020.12.18
DefaultConstructer(기본 생성자)  (0) 2020.12.18