본문 바로가기

Application-level프로그래밍

(C++) Inheritance(상속) 요약

-상속을 사용하기 위해서는 클래스 선언부에서 클래스 이름 바로 뒤에 "  : public (상속할 클래스 명) " 을 붙인다.
public 대신 다른 키워드를 쓸 수 있지만, 별로 쓸모 없다고 생각한다.

-상속되지 않는 것

Assignment operator
Constructor
Destructor

-상속할 클래스에서 선언된 멤버들은  또 적을 필요없다. 클래스 이름 뒤에 상속할 클래스 이름을 명시한 것으로 충분하다.
-상속받을 수 있는 함수를 재정의할 때만 그 함수의 원형을 클래스에 선언한다. 재정의했는데 기반클래스의 함수를 호출할때는
함수이름 앞에 " 기반클래스명:: "을 붙여라.
-부모(기반)클래스의 private 멤버는  직접 접근할 수 없어서 상속이 안된 것 처럼 보이나, 부모클래스의 public 함수를 이용하면 된다.



-생성자의 Initialization Section 에서만 부모클래스의 생성자를 호출할 수 있다.(여기서 말하는 호출은 new 키워드를 붙여쓰는    게 아님)  명시하지 않으면 기본생성자를 호출하게 되지만 명시하는 습관을 들여라.일반적으로 클래스의 기본생성자는 자동으로 만들어지지 않을 때도 있으므로 항상 생성자 정의를 염두에 두어야한다.

-부모클래스의 것을 호출해서 덧붙여 정의하는 것이 바람직한 함수들, 그리고 구현 순서 :
생성자 -> 복사생성자 -> Assignment  operator
  Note) 모든유형의 생성자는 Initialization Section를 쓸 수 있다. 기반클래스의 대입 연산자 호출은 " 기반클래스명:: = (인수) ; "

-부모클래스의 소멸자는 자식클래스의 소멸자 호출 후에 일어난다.