반응형
protected로 선언된 멤버가 허용하는 접근의 범위
private < protected < public
protected는 private과 동일하게 클래스 외부 접근 불가
private과 달리 상속관계에서의 접근을 허용
//private 상속과 protected 상속
#include <iostream>
using namespace std;
class Base
{
private:
int num1;
protected:
int num2;
public:
int num3;
void ShowData()
{
cout << num1 << ", " << num2 << ", " << num3;
}
};
class Derived:public Base //public 상속
{
public:
void ShowBaseMember()
{
cout << num1; //private: 컴파일 에러
cout << num2; //protected: 컴파일 가능
cout << num3; //public: 컴파일 가능
}
};
세가지 형태의 상속 [상속의 형태] : 상속할 때 접근 제어 키워드의 유지 방법 결정
- public 상속
-
class Derived : public Base { ... }
- 접근 제어 권한 그대로 상속
-
- protected 상속
-
class Derived : protected Base { ... }
- public 멤버를 protected로 상속
-
- private 상속
-
class Derived : private Base { ... }
- public, protected 멤버를 private으로 상속
- 단, private은 접근 불가로 상속
-
class Derived:private Base
{
접근불가:
int num1;
private:
int num2;
private:
int num3;
};
class Derived:protected Base
{
접근불가:
int num1;
protected:
int num2;
protected:
int num3;
};
class Derived:public Base
{
접근불가:
int num1;
protected:
int num2;
public:
int num3;
};
반응형
'Programming > C++ 3' 카테고리의 다른 글
[C++] 08-01. 객체 포인터의 참조관계 [급여관리 시스템 2단계] (0) | 2021.05.29 |
---|---|
[C++] 07-04. 상속을 위한 최소한의 조건 (0) | 2021.05.29 |
[C++] 07-02. 상속의 문법적인 이해 (0) | 2021.05.29 |
[C++] 07-01. 상속에 대한 이해와 접근 [급여관리시스템 1단계] (0) | 2021.05.28 |
[C++ 프로젝트] 은행계좌 관리 프로그램 Part. 05 (0) | 2021.05.18 |