상속
: 부모클래스 - 자식클래스가 존재한다. 부모클래스의 멤버 변수/함수를 그대로 가져와서(상속) 자식클래스에서 사용가능하다.
class 파생클래스(자식클래스) : 접근지정자( public / private / protected ) 기반클래스(부모클래스,기저클래스)
{
멤버함수와 멤버변수 선언;
};
※ 값의 접근(접근지정자)
접근지정자 |
자기자신(기반클래스)에서 |
파생클래스에서(자식클래스) |
외부에서(main,...) |
public |
참조가능 |
참조가능 |
참조가능 |
protected |
참조가능 |
참조가능 |
참조불가능 |
private |
참조가능 |
참조불가능 |
참조불가능 |
상속 예제 |
#include <iostream> #include <string>using namespace std; class Car { public: string Color; string Vendor; string Model; void Print() { cout << Color << endl; cout << Vendor << endl; cout << Model << endl; } Car() { Color = "없음"; Vendor = "없음"; Model = "없음"; cout << "Car class 생성자 구동" << endl; } ~Car() { cout << "Car class 소멸자 구동 시작" << endl; Print(); cout << "Car class 소멸자 구동 끝" << endl; } }; class BMW_745 { public: string Color; string Vendor; string Model; BMW_745() { cout << "BMW class 생성자 구동" << endl; Color = "White"; Vendor = "BMW"; Model = "745Li"; } void Print() { cout << Color << endl; cout << Vendor << endl; cout << Model << endl; } ~BMW_745() { cout << "BMW_745 class 소멸자 구동 시작" << endl; Print(); cout << "BMW_745 class 소멸자 구동 끝" << endl; } }; class Morning : public Car //public을 적어주지 않으면 private으로 상속됨 { public: Morning() { cout << "Morning class 생성자 구동" << endl; Color = "Red"; Vendor = "KIA"; Model = "Morning"; } ~Morning() { cout << "Morning class 소멸자 구동 시작" << endl; Print(); cout << "Morning class 소멸자 구동 끝" << endl; } }; int main() { Car aCar; aCar.Color = "Red"; aCar.Vendor = "SOONK"; aCar.Model = "H2"; //aCar.Print(); BMW_745 Mycar; //Mycar.Print(); Morning MomCar; //MomCar.Print(); // 생성순서는 먼저 생성한 객체부터 이고 // 상속받았다면 부모먼저 자식이 다음, // 소멸 순서는 마지막에 생성된것부터... return 0; } |
소스
'C++프로그래밍' 카테고리의 다른 글
2013.11.21 _ 상속에서 멤버 함수 재정의(함수오버로딩,함수오버라이딩) (0) | 2013.11.21 |
---|---|
2013.11.20 _ 상속 예제 연습 (0) | 2013.11.20 |
[2013.11.01] C++ _ 자료형과 연산자 (0) | 2013.11.01 |
2013.10.18_문자열변수와 문자열상수의 구분 (0) | 2013.10.18 |
2013.05.27_pragma pack() 에 대해서_팁 (0) | 2013.05.27 |