컴퓨터 언어/C++

[C++] C++ 10일차 상속 2

훈츠 2020. 4. 10. 12:59
반응형

안녕하세요. 훈츠입니다. 금일은 클래스간 상속시 접근 지정자가 어떻게 동작 하는지 정리 해보도록 하겠습니다. 


파생 클래스에서 기본 클래스에 대한 접근 권한 

[ 기본 클래스 멤버 속성 ]

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

 

 

반응형