protected 키워드는 기초 클래스로부터 파생된 클래스 안에서만 사용할 수 있다. 파생 클래스의 멤버들은 기초 클래스의 protected 멤버에 직접 접근할 수 있지만, private 멤버에는 접근할 수 없다. 정리해보면 파생 클래스 밖에서 protected와 private 멤버는 차이가 없지만 파생 클래스 안에서는 기초 클래스의 protected 멤버는 public 멤버와 같다.
public | private | protected | |
파생 클래스 | 접근 가능 | 접근 불가 | 접근 가능 |
클래스 밖 | 접근 가능 | 접근 불가 | 접근 불가 |
class Base
{
public:
int publicNum;
private:
int privateNum;
protected:
int protectedNum;
};
class Derived : public Base
{
public:
void SetNum(int numA, int numB, int numC)
{
publicNum = numA; //문제 없음
privateNum = numB; //문제 있음
protectedNum = numC; //문제 없음
}
};
int main()
{
Derived d;
d.publicNum = 10; //문제 없음
d.privateNum = 20; //문제 있음
d.protectedNum = 30; //문제 있음
system("Pause");
return 0;
}
728x90
'서적 정리 > C++ 기초 플러스' 카테고리의 다른 글
1.C++의 탄생: 간략한 역사 (0) | 2022.07.20 |
---|---|
81.클래스 설계 복습 (0) | 2022.07.19 |
80.상속과 동적 메모리 대입 (0) | 2022.07.18 |
79.추상화 기초 클래스 (0) | 2022.07.14 |
77.정적 결합과 동적 결합 (0) | 2022.07.13 |
76.public 다형 상속 (0) | 2022.07.12 |
75.상속: is-a 관계 (0) | 2022.07.12 |
74.간단한 기초 클래스부터 시작하자 (0) | 2022.07.12 |
댓글