【问题标题】:how a derived class pointer can call the base class function派生类指针如何调用基类函数
【发布时间】:2016-08-21 03:48:47
【问题描述】:

我有一个基类“a”,其中包含一些虚函数,在派生类“b”中,我重载了该函数。现在我还有一个仅从 'b' 派生的类 'c' 并且我有一个指向类 c 的指针。但是我无法弄清楚如何从 'c' 类指针中调用该函数。帮帮我,也许它很愚蠢,但我被困在这里。

【问题讨论】:

    标签: c++ pointers inheritance


    【解决方案1】:
    struct A { virtual void foo() {} };
    struct B: A { void foo() override {} };
    struct C: B {};
    
    auto main() -> int
    {
        C o;
        C* p = &o;
    
        p->foo();    // Calls B::foo
        p->A::foo(); // Calls A::foo
    }
    

    【讨论】:

      【解决方案2】:

      如果c 是指向C 的指针:

      c->A::method();
      

      【讨论】:

      • 感谢您的提示,更具体地说,我正在研究 Qt(c++ gui 库),并且我有一个类似这样的连接函数 connect(“C 类指针”,SIGNAL(A类 FUNC) , 另一个 ptr , SLOT(func)) ;现在我只是在使用这个 func,它给了我 FUNC 不在 C 类中的错误,有什么解决方案吗...
      猜你喜欢
      • 1970-01-01
      • 2016-10-06
      • 2010-12-24
      • 2012-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多