본문 바로가기

프로그래밍/C++

C++ 기초 문법 - 클래스의 상속

< 클래스의 상속 >


class 자식 : public 부모 {...};


이렇게 부모 클래스를 상속 받은 자식 클래스를 만들 수 있습니다.

상속을 하게 되면 public과 protected 상태의 맴버변수와 메소드를 이어 받습니다.


예제에서 학생 클래스는 메소드 걷기, 먹기, 상속를 적지 않아도

부모 클래스인 사람 클래스의 것을 그대로 상속 받아 사용할 수 있습니다.


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
#include <iostream>
 
using namespace std;
 
class 사람
{
public:
    void 걷기() { }
    void 먹기() { }
protected:
    void 상속() { }
private:
    int 몸무게;
    int 키;
    void 다이어트() { }
};
 
class 학생 : public 사람
{
public:
    void 공부() { }                                                
    void 취미생활() { }
};
 
int main()
{
    사람 세한;
    세한.걷기();
    세한.먹기();
 
    학생 다연;
    다연.공부();
    return 0;
}
cs


< 상속한 method가 사용하는 변수는? >


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
#include <iostream>
 
using namespace std;
 
class Parent {
private:
    int 몸무게 = 10;
    int 키 = 20;
public:
    int set() {
        cout << "부모의 몸무게 : " << 몸무게 << endl;
        cout << "부모의 키 : " << 키 << endl;
        return 1;
    }
};
 
class Child : public Parent {
private:
    int 몸무게 = 20;
    int 키 = 10;
};
 
int main() {
    Child c;
    c.set();
    return 0;
}
cs


Child class는 Parent class를 상속해서 몸무게, 키, set을 사용할 수 있습니다.

그래서 Child class의 객체 c가 Parent의 set을 사용하면 다음과 같습니다.



Child class의 몸무게 20, 키 10을 무시하고

Parent class의 몸무게 10, 키 20을 사용해 set을 출력합니다.

'프로그래밍 > C++' 카테고리의 다른 글

C++ 문법 - 소멸자  (0) 2018.01.22
C++ 문법 - 생성자  (0) 2018.01.22
C++ 기초 문법 - 클래스의 접근상태  (0) 2018.01.15
C++ 기초 문법 - 클래스  (0) 2018.01.14
C++ 기초 문법 - 함수  (0) 2018.01.14