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는 피해야 한다.
비가상 함수는 정적 바인딩으로 묶이고, 가상 함수는 동적 바인딩으로 묶인다.
* 상속받은 비가상 함수를 재정의하는 일은 절대로 하지 맙시다.
댓글 없음:
댓글 쓰기