有什么办法可以使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/

10-09 00:19