C & C++/C++

[C++] 파생 클래스, 자식 클래스

  • -
728x90

inheritanc(상속)

상속은 사용자에게 높은 수준의 코드 재활용성을 제공하며, 클래스 간의 계층적 관계를 구성함으로써 다형성의 문법적 토대를 마련한다.

class inheritance(클래스 상속)

C++에서 클래스 상속이란 기존에 정의되어있는 클래스의 모든 멤버 변수와 멤버 함수를 물려받아, 새로운 클래스를 작성하는 것이다.

이때 기존에 정의되어 있던 클래스를 기초 클래스 또는 부모 클래스, 상위 클래스라고 한다.

상속을 통해 새롭게 작성되는 클래스를 파생 클래스, 자식 클래스, 하위 클래스라고 한다.

 

상속은 다음과 같은 장점을 갖는다.

  • 기존에 작성된 클래스를 재활용할 수 있다.
  • 공통적인 부분은 기초 클래스에 미리 작성하여, 파생 클래스에서에서 중복되는 부분을 제거할 수 있다.

derived class(파생 클래스)

class 파생클래스이름 : 접근제어지시자 기초클래스 이름 [, 접근제어지시자 기초클래스이름 ...]
{
	...
}

접근제어지시자를 생략하면 파생 클래스의 접근 제어 권한은 private로 기본 설정 된다.

만약 여러 개의 기초 클래스를 상속하면 다중 상속, 하나이면 단일 상속이라고 한다.

 

  • 파생 클래스는 반드시 자신만의 생성자를 작성해야한다.
  • 기초 클래스의 접근할 수 있는 모든 멤버 변수들이 저장된다.
  • 기초 클래스의 접근할 수 있는 모든 멤버 함수를 사용할 수 있다.
  • 멤버를 추가할 수 있다.

파생 클래스의 객체 생성 순서

http://tcpschool.com/cpp/cpp_inheritance_derivedClass

  • 파생 클래스의 객체를 생성하면 프로그램은 제일 먼저 기초 클래스의 생성자를 호출한다.
    이때 기초 클래스 생성자는 상속받은 멤버 변수의 초기화를 진행한다.
  • 파생 클래스의 생성자를 호출한다.
  • 파생 클래스의 수명이 다하면, 파생 클래스의 소멸자가 호출되고, 그 후에 기초 클래스의 소멸자가 호출된다.
728x90
300x250
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.