● 상속 선언
< 예시 : 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 = x; this->y = 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 |