有什么办法可以使ptr-> fun2()成为可能?
class A
{
void fun1()
{
A* ptr;
ptr->fun2();
}
}
class B : class A
{
void fun2()
{
}
}
最佳答案
这是不可能的。 C ++是一种静态类型的语言。 ptr
的类型是A
的指针。 fun2
不是A
的成员。根据定义,不可能通过指针/引用来调用fun2
以键入A
。
这通常通过铸造解决。由于您出于未指明的原因取消了该资格,因此无法执行您想要的操作。
关于c++ - 如何在不进行类型转换和使用多态的情况下使用基类指针来调用派生类非虚拟成员函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35296356/