C언어

c++ 공부 요점정리 20

뮹실이 2013. 11. 27. 21:52






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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// =====================================================
// 35 세가지 형태의 상속
// =====================================================
//
// 접근 권한 변경
// : base 클래스의 멤버는 상속되는 과정에서 
// 접근 권한이 변경됨
// 다음과 같은 경우 b 클래스는 a 클래스로 상속되는
// 과정에서 접근권한이 변경되는데 
// 변경되는 방법이 public으로 하느냐
// protected, private로 하느냐는 결정...
//
class A : public B
{
...
}
//
// 대부분의 상속은 public 상속이다.
// public 상속에 포인트를 둔다.
// 
// 다음과 같이 protected 상속은
// protected 보다 접근권한이 넓은 것은
// protected 으로 맞춰서 상속하겠다는 의미
// 상속되는 과정에서 c는 public으로 선언되어 있어
// protected 보다 접근할수있는 범위가 넓다.
// 그러면 상속되면서 protected로 변경된다.
// b는 그대로 protected를 유지한다.
// a는 protected보다 접근 범위가 좁아서 
// 그대로 상속되는 것이 아니라
// private, protected, public 중 어느것도
// 포함되지 않는 접근불가로 바뀐다
// 즉 직접접근이 절대 허용되지 않는다.

class base
{
	private :
		int a;
	protected :
		int b;
	public :
		int c;	
}

class derived : protected base
{
	...
}
//
// protecte나 public은 private 보다 
// 접근 허용 범위가 넓기 때문에 
// 모두 private가 된다.
// a는 접근불가가 된다.
// 그래서 derived 클래스 내에서는 a로 직접접근이
// 불가능하게 된다.
// 
// 
//
class base
{
	private :
		int a;
	protected :
		int b;
	public :
		int c;	
}

class derived : private base
{
	...
}