반응형

상속(Inheritance)

 

객체 치향 언어의 대표적인 특징 중의 하나, 상속(Inheritance)

프로그램을 개발하다 보면 중복되는 내용이 많다.

이렇게 중복되는 코드를 단순히 복사해서 사용하는 것보다 이미 개발한 소스를 더 체계적으로 재활용하기 위한 방법.

 

상속이란 자식이 부모가 가지고 있는 재산이나 권력을 불려받는다는 의미

특정(자식) 클래스는 다른(부모) 클래스가 가지고 있는 모든 멤버변수나 멤버함수를 사용할 수 있다.

 

- 부모 클래스

Class Parent

{

public: void ParentPrn();

}

 

- 부모 클래스의 상속을 받는 자식 클래스

Class Child: public Parent

{

public: void ChildPrn();

}

 

protected 멤버의 사용

 

액세스 지정자 

자신의 클래스

 파생 클래스

클래스 외부 

 private

O

X

 protected

O

O

X

 public

O

 

private 는 파생클래스에서 접근하는 것을 허용하지 않는다.

public 는 파생클래스에서 접근하는 것을 허용하지만, 외부에서도 접근 가능하게 된다.

 

객체 지향 언어의 기본 특징인 캡슐화란 개념을 고수하면서 상속이 가능하도록 하기 위해서 제공되는 액세스 지정자가 바로 protected 이다. 부모가 되는 기반 클래스의 멤버변수들을 protected 로 지정해 두면 상속 가능하게 되어 파생 클래스에서 사용이 가능하지만 외부에서는 접근 불가능하게 된다.

 

오버라이딩과 오버로딩

오버라이딩과 오버로딩은 다형성을 지원하는 기술이라는 점에서는 매우 유사하다. 오버라이딩은 상속이란 개념에서 함수의 원형이 완전히 동일한 함수를 파행(하위) 클래스에서 사용하고자 할 때 새롭게 정의하는 것이다. 오버로딩은 동일한 이름을 다양한 일을 수행할 수 있도록 하기 위해서 함수의 원형을 달리해서 여러번 정의하는 것이다.

반응형

'프로그래밍 > C, C++' 카테고리의 다른 글

C언어 출력타입 %d, %f, %e, %o, %x, %u, %g ......  (0) 2013.12.11
정적 바인딩과 동적 바인딩  (0) 2013.07.08
바인딩  (0) 2013.06.03
가상함수  (0) 2013.06.03
객체지향 언어의 특징  (0) 2013.06.03

+ Recent posts