当我使用指向继承类的指针调用基类函数时,为什么会出现编译错误?继承和指向指针的指针:为什么它不工作,我该如何解决它?
例子:
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
}
如何解决此得到什么?
这不是暂时的地址吗?这是真的吗? – 2010-07-27 12:11:16
@Anders那么'dynamic_cast'然后呢? –
2010-07-27 13:24:29