● 상속 선언



< 예시 : Point 클래스를 상속받는 ColorPoint 클래스 만들기 >


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
#include <iostream>
#include <string>
using namespace std;
 
class Point { // 2차원 평면에서 한 점을 표현하는 클래스 Point 선언
    int x, y; //한 점 (x,y) 좌표값
public:
    void set(int x, int y) { this->= x; this->= y; }
    void showPoint() {
        cout << "(" << x << "," << y << ")" << endl;
    }
};
 
class ColorPoint : public Point { // 2차원 평면에서 컬러 점을 표현하는 클래스 ColorPoint. Point를 상속받음
    string color;// 점의 색 표현
public:
    void setColor(string color)  {    this->color = color; }
    void showColorPoint();
};
 
void ColorPoint::showColorPoint() {
    cout << color << ":";
    showPoint(); // Point의 showPoint() 호출
}
 
int main() {
    Point p; // 기본 클래스의 객체 생성
    ColorPoint cp; // 파생 클래스의 객체 생성
    cp.set(3,4); // 기본 클래스의 멤버 호출
    cp.setColor("Red"); // 파생 클래스의 멤버 호출
    cp.showColorPoint(); // 파생 클래스의 멤버 호출
}
cs



※ parent 클래스는 public으로 하면 됨


=> 실행 결과


Red:(3,4)



※ 기본 클래스의 private 멤버의 접근


:   Parent class의 private 멤버는 Child class의 함수로는 접근할 수 없다! => Parent 클래스에서 상속받은 함수로만 간접적으로 접근 가능하다!



※ private 멤버는 해당 클래스 내의 멤버 함수들에게만 접근이 허용된다.

'C++ > C++ 문법' 카테고리의 다른 글

#8-3 상속과 생성자, 소멸자  (0) 2018.10.07
#8-2 상속과 객체 포인터  (0) 2018.10.07
#7-B 연산자 중복  (0) 2018.10.07
#07-A 프렌드  (0) 2018.10.05
#6 함수 중복과 static 멤버  (0) 2018.10.05