상속 된 클래스에 대한 포인터를 가리키는 포인터로 기본 클래스 함수를 호출 할 때 컴파일 오류가 발생하는 이유는 무엇입니까?상속 및 포인터 포인터 : 왜 작동하지 않으며 어떻게 처리합니까?
예 : 나는이 문제를 어떻게합니까
class cFoo {};
class cBar : public cFoo {};
void func1(cFoo *) {} // base class
void func2(cFoo **) {} // base class
void main(void)
{ cBar bar, *pbar; // inherited class
func1(&bar); // compiles OK
func2(&pbar); // fail
func2(dynamic_cast<cFoo**>(&pbar)); // 'class cFoo ** ' : invalid target type for dynamic_cast
}
?
임시 주소를 사용하지 않습니까? 그게 정말로 허용됩니까? –
@ 앤더스에 대해'dynamic_cast'그 다음은 무엇입니까? –