C++ DAY5 Is-a관계
by 으렴
C++의 상속은 다중상속이 가능하다.
접근지정자를 이용한 상속방식이 3가지가 있다.
1. private 방식 (has-a) :
2. protected 방식 (has-a) :
요즘은 포함오브젝트 방식을 더 많이 쓴다.
3. public 방식 (Is-a) : 원래 의미 그대로 전달됨. ( java에서 하는 방식 )
class A{ }
class B : protected A{ } //상속됨
만약 접근지정자를 지정하지 않으면
class B : A { }
무조건 private로 지정된다.
상속 방식 ( 접근지정자 변환 )
|
부모 |
자식 |
private 상속 |
private, protected, public |
private |
protected 상속 |
private, protected, public |
private, protected, protected |
public 상속 |
private, protected, public |
있는 그대로 |
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 |
#include<iostream>
using namespace std;
class A
{
int a1;//1
protected :
int b1;//2
public:
int c1;//3t
void seta1(int a1){ this->a1=a1; }
void setb1(int b1){ this->b1=b1; }
int geta1(){ return a1; }
int getb1(){ return b1; }
};
class B : public A
{
int a2;//4
protected :
int b2;//5
public:
int c2; //6
void seta2(int a2){ this->a2=a2; }
void setb2(int b2){ this->b2=b2; }
int geta2(){ return a2; }
int getb2(){ return b2; }
};
class C : public B
{
int a3;//7
protected :
int b3;//8
public:
int c3; //9
void seta3(int a3){ this->a3=a3; }
void setb3(int b3){ this->b3=b3; }
int geta3(){ return a3; }
int getb3(){ return b3; }
};
void main()
{
C cc;
//직접 접근 가능 한거 직접 표현
//접근 불가능 한거 함수로 표현
cc.seta1(1);
cc.setb1(2);
cc.c1=3;
cc.seta2(4);
cc.setb2(5);
cc.c2=6;
cc.seta3(7);
cc.setb3(8);
cc.c3=9;
cout<<cc.geta1()<<endl;
cout<<cc.getb1()<<endl;
cout<<cc.c1<<endl;
cout<<cc.geta2()<<endl;
cout<<cc.getb2()<<endl;
cout<<cc.c2<<endl;
cout<<cc.geta3()<<endl;
cout<<cc.getb3()<<endl;
cout<<cc.c3<<endl;
} |
cs |
'Programming Language > C and Cpp' 카테고리의 다른 글
C언어로 버블 정렬 구현하기 (0) | 2019.02.01 |
---|---|
C++ 복사 생성자 (0) | 2018.03.16 |
C++ DAY4 const (0) | 2018.03.08 |
C++ DAY4 static method (0) | 2018.03.08 |
C++ 복사 생성자 / 소멸자 함수 (0) | 2018.03.08 |
사이트의 정보
코딩하렴
으렴