2012년 2월 23일 목요일

[C++] 상속 (정리중)


자식에서 부모 상속시 헤더 파일에서 인클루드 한다. 이유는??


virtual 함수를 선언하면 클래스에 4바이트 공간이 생기고 그것을 상속클래스에서 관리한다.(함수 포인터 공간인듯) 이로 인해 함수 오버라이딩이 가능해진다.


생성자는 부모부터 실행된다. 초기화리스트(이니셜라이저)로 자식에서 부모 생성자를 호출할 수 있다.
소멸자는 자식부터 실행된다. 메모리 누수 등의 문제를 방지하기 위해서. 이 때문에 소멸자는 반드시 virtual 로 선언해야한다.


부모만이 자식을 품을 수 있다.
부모클래스 포인터로 자식객체를 가리킬 수 있다.(업캐스트)
자식클래스 포인터로 부모객체를 가리킬 수 없다.(다운캐스트: 부모클래스 포인터에서 자식포인터로 형변환)
단, 명시적 형변환은 가능.


상태패턴에 사용된다.

댓글 없음:

댓글 쓰기