부모 포인터가 하위 클래스 대상을 가리킬 때 함수 호출
class A
{
public:
void FuncA()
{
printf( "FuncA called
" );
}
virtual void FuncB()
{
printf( "FuncB called
" );
}
};
class B : public A
{
public:
void FuncA()
{
A::FuncA();
printf( "FuncAB called
" );
}
virtual void FuncB()
{
printf( "FuncBB called
" );
}
};
void main( void )
{
B b;
A *pa;
pa = &b;
A *pa2 = new A;
pa->FuncA(); ( 3)
pa->FuncB(); ( 4)
pa2->FuncA(); ( 5)
pa2->FuncB();
delete pa2;
}
부모 포인터는 하위 클래스의 실례 대상을 가리키며, 일반적인 재작성 함수를 호출할 때, 부모 클래스의 함수를 호출합니다.이불 클래스를 호출하여 허 함수를 다시 쓸 때 하위 클래스의 함수를 호출합니다.
다시 한 번 설명하자면 하위 클래스에서 다시 쓴 허함수의 운행 방식은 동적 귀속된 것으로 현재 클래스 실례를 가리키는 부모 포인터 형식과 상관없이 클래스 실례 대상 자체와만 관련이 있다.