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