코딩하렴

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

사이트의 정보

코딩하렴

으렴

활동하기