1、将基类指针转换为派生类指针,去调用。
具体方法见:C++中使用基类指针调用派生类中定义的方法
核心代码:
A *p = new B;
dynamic_cast<B*>(p)->func(); // cast A* to B*
不转换找不到的原因:基类空间内不存在该函数,虚表内也不存在。只存在派生类的空间内。因此只能派生类指针调用。
2、在基类中声明该函数,直接用基类指针调用。
可以不用实现该方法,即(虚函数)。
1、将基类指针转换为派生类指针,去调用。
具体方法见:C++中使用基类指针调用派生类中定义的方法
核心代码:
A *p = new B;
dynamic_cast<B*>(p)->func(); // cast A* to B*
不转换找不到的原因:基类空间内不存在该函数,虚表内也不存在。只存在派生类的空间内。因此只能派生类指针调用。
2、在基类中声明该函数,直接用基类指针调用。
可以不用实现该方法,即(虚函数)。