○ 상속의 기본 개념
- [기본의미]부모의 성질을 물려 받는 것 -> 하나의 클래스가 다른 클래스에서 정의되어 있는 성질이나 특성을 물려 받을 수 있는데 클래스의 정의된 성질이나 특성은 멤버 변수나 함수를 그대로 사용할 수 있음을 의미 = 재사용성, 다형성(Polymorphism)
- 부모 클래스와 자식 클래스
사용예시) class 자식 클래스 : public 부모 클래스 {/* 중간 코드 생략 */};
○ 상속과 접근 지정자(객체지향에서 정보 은폐의 특징을 표현00)
- 자식 클래스가 부모 클래스의 멤버 변수나 함수를 사용할 때에는 접근 지정자(public, protected, private 등)에 따른 제약 사항이 있음.
'private' : 부모 클래스 내부에서만 사용 가능(단, 프렌드 함수 사용 시 에는 사용 가능) ex) 금고(집안에서 개인적인 물건)
'protected' : 부모 클래스와 부모를 상속받는 자식 클래스의 내부에서만 사용 가능 ex) 집안의 냉장고(집안에서는 공동물건)
'public' : 부모 클래스와 자식 클래스 밖에서도 사용 가능 ex)공공장소
'->' : 클래스 멤버 접근 포인터 연산자
● 상속 접근 지정자
상속 접근 지정자 |
기반 클래스 |
파생 클래스로의 상속형태 |
public |
public |
public |
private |
접근 불가 |
|
protected |
protected |
|
private |
private |
private |
private |
접근 불가 |
|
protected |
private |
|
protected |
public |
protected |
private |
접근 불가 |
|
protected |
protected |
○ 생성자를 이용한 초기화
○ c++ 클래스들은 생성자와 소멸자를 가질 수 있는데,
생성자의 경우, 클래스의 인스턴스가 만들ㄹ어질 떄 호출되고, 상속을 이용할 때에는 부모와 자식의 생성자가 모두 호출되면서 클래스의 인스턴스가 초기화 됨.(이떄, 부모의 생성자가 먼저 호출되고 자식의 생성자가 호출됨.)
소멸자의 경우, 이와 반대로 자식의 소멸자가 먼저 호출이 되고 난 이후에 부모의 소멸자가 호출됨.
○ 생정자의 인수 전달
- 생성자를 호출하는 경우에 부모 클래스에서 자식 클래스로 인수를 전달할 수 있는데, 생성자에서 초기화할 떄,
부모의 클래스에서 자식 클래스로 인수를 전달할 수 있는데, 생성자에서 초기화할 떄 부모 클래스의 인자를 넘겨서 확장된 형태의 자식 클래스를 사용할 수 있도록 해줌.
형식 : ChildClass::Constructor(변수 리스트):ParentClass(변수 리스트)
○ 생성자에서 부모의 생성자 호출
- (자식)생성자에서 부모의 클래스의 생성자를 불러서 초기화를 하고 싶은 경우, 부모 클래스의 생성자를 직접 호출해서 자식 크래스의 생성자의 기본 초기화 과정을 수행 가능
예시) ChildClass::Constructor(변수 리스트):ParentClass(변수 리스트){ ParentsClass::Constructor(변수 리스트); }
- 자식 클래스에서 부모 클래스의 생성자를 이용하면 기본적인 부모 클래스의 생성자를 호출해서 직접 값을 넘겨 줄 수 있기 떄문에 보다 정확한 클래스의 초기확가 가능하다는 장점을 제공해 줄 수 있음.
'스마트웹앱콘텐츠전문가 > C++' 카테고리의 다른 글
[가상 함수와 다중 상속 : 상속의 개념 연장선] (0) | 2019.01.14 |
---|---|
[friend와 연산자 오버로딩] (0) | 2019.01.11 |
[객체배열과 객체포인터] (0) | 2019.01.10 |
함수 (0) | 2019.01.09 |
기초구문 (0) | 2019.01.08 |