반응형
안녕하세요. 훈츠입니다. 금일은 클래스간 상속시 접근 지정자가 어떻게 동작 하는지 정리 해보도록 하겠습니다.
파생 클래스에서 기본 클래스에 대한 접근 권한
[ 기본 클래스 멤버 속성 ]
A class | B class : public A | B : protected A | B : private A |
private | 사용 불가 | 사용 불가 | 사용 불가 |
protected | private 사용 | private 사용 | private 사용 |
public | public 사용 | private 사용 | private 사용 |
- private 멤버 : 사용 불가
- protected : private 로 사용
- public : public 및 private 로 사용
※ 코드 예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
//훈스 블로그---------------------------------------------------------------------------------------------------코드//
#include <iostream>
#include <fstream>
using namespace std;
class A
{
private : void A_private() {cout << "A.private" << endl; }
public: void A_public() {cout << "A.public" << endl; }
protected: void A_protected() { cout << "A_protected" << endl; }
};
class B : public A
{
private: void B_private() { cout << "B.private" << endl; }
public: void B_public() {
cout << "B.public" << endl;
A_public();
A_protected();
}
protected: void B_protected() {
cout << "B_protected" << endl;
A_public();
A_protected();
}
};
class C : protected A
{
private: void C_private() { cout << "C.private" << endl;}
public: void C_public() {
cout << "C.public" << endl;
A_public();
A_protected();
}
protected: void C_protected() { cout << "C_protected" << endl;
A_public();
A_protected();
}
};
int main()
{
A a;
a.A_public();
// A를 Public 으로 상속후, A_public() 함수 접근
B b;
b.A_public();
b.B_public();
// A를 Protected 으로 상속후, A_public() 함수 접근불가
C c;
c.C_public();
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
'컴퓨터 언어 > C++' 카테고리의 다른 글
[C++] C++ 12일차 상속 4 (0) | 2020.04.14 |
---|---|
[C++] C++ 11일차 상속 3 (0) | 2020.04.13 |
[C++] C++ 9일차 상속 1 (0) | 2020.04.09 |
[C++] C++ 9일차 클래스 3 생성자, 소멸자, this (0) | 2020.04.09 |
[C++] C++ 8일차 클래스 2 접근지정자(public, private , protected ) (0) | 2020.04.07 |