티스토리 뷰
1. C++ 에서 부모클래스를 ( 기본 클래스 )라 하고, 자식클래스를 ( 파생 클래스 )라 한다.
2. 예제 8-1 소스코드, 실행결과, 주석
소스코드, 주석
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> #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) 2차원 평면에서 컬러 점을 표현하는 클래스 ColorPoint. Point를 상속받음 string color;// 점의 색 표현 public: void setColor(string color) { this->color = color; } void showColorPoint(); }; void ColorPoint::showColorPoint() { cout << color << ":"; showPoint(); // (1) Point의 showPoint() 호출 } int main() { Point p; // 기본 클래스의 객체 생성 ColorPoint cp; // 파생 클래스의 객체 생성 cp.set(3,4); // (2) 기본 클래스의 멤버 호출 cp.setColor("Red"); // (3) 파생 클래스의 멤버 호출 cp.showColorPoint(); // (3) 파생 클래스의 멤버 호출 system("pause"); } | cs |
실행결과
(1) 파생 클래스에서 기본클래스 멤버 접근
파생 클래스는 상속을 통해 기본 클래스의 멤버를 자신의 멤버로 확장한다. 파생 클래스의 멤버들을 기본 클래스의 private 멤버 외에 모든 멤버를 접근할 수 있다. |
(2) 기본클래스의 상속과 접근
기본 클래스의 private 멤버도 파생클래스에 상속된다. 파생 클래스의 객체가 생길 때 파생 클래스의 객체 내에 생성된다. 기본클래스에 선언된 private 멤버는 파생 클래스에 상속되고 파생 클래스의 객체에도 포함되지만 파생 클래스의 어떤 함수에서도 직접 접근할 수 없다. |
(3) 클래스 외부에서 파생클래스의 멤버호출
main() 함수와 같이 파생 클래스의 외부에서는 파생 클래스 객체의 public 멤버와 기본 클래스의 public 멤버를 모두 접근할 수 있다. 기본 클래스의 함수들을 상속을 통해서 파생 클래스의 멤버로 확장되기 때문에 외부에서 파생 클래스의 멤버처럼 기본 클래스의 멤버들이 다루어진다. |
3. 상속의 종류
(1) public 상속: 기본 클래스를 public으로 상속받으면, 기본 클래스의 protected, public 멤버들은 접근 지정 변경 없이 파생 클래스에 그대로 상속 확장된다.
(2) protected 상속 : 기본 클래스를 protected로 상속받으면, 기본 클래스의 protected, public 멤버들은 모두 protected 접근 지정으로 변경되어 파생 클래스에 상속 확장된다.
(3) private 상속 : 기본 클래스를 private로 상속받으면, 기본 클래스의 protected, public 멤버들은 모두 private 접근 지정으로 변경되어 파생 클래스에 상속 확장된다.
'객체지향 프로그래밍' 카테고리의 다른 글
9.가상함수와 추상클래스 (0) | 2016.11.22 |
---|---|
6. 함수중복과 static멤버 (0) | 2016.11.11 |
5. 함수와 참조 , 복사생성자 (0) | 2016.11.04 |
4. 객체포인터와 객체배열, 객체의 동적생성 (0) | 2016.10.11 |
3. 클래스와 객체 (0) | 2016.09.20 |
- Total
- Today
- Yesterday
- Git
- 구글맵
- 에 잚
- 파이썬
- 웹
- 팩토리 패턴
- 구글 맵
- flask
- Windwos
- 추상 클래스
- Apache
- 한글 깨짐
- cmd
- Python
- 한글
- django
- 한글깨짐
- 플라스크
- 깨짐
- 팩토리 메소드 패턴
- 심플 팩토리 패턴
- Windows
- ㄹ
- git log
- Google Map
- 안드로이드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |