Post List

2015년 1월 4일 일요일

상속받은 비가상 함수를 파생 클래스에서 재정의하는 것은 절대 금물!

class B {
public:
    void mf();
};

class D: public B {
public:
    void mf();
};

D d;

B* pB = &d;
D* pD = &d;
pB->mf(); // B::mf() 실행
pD->mf(); // D::mf() 실행

이런 일관성이 없는 Code는 피해야 한다.
비가상 함수는 정적 바인딩으로 묶이고, 가상 함수는 동적 바인딩으로 묶인다.




* 상속받은 비가상 함수를 재정의하는 일은 절대로 하지 맙시다.

댓글 없음:

댓글 쓰기