从子类调用基类

The*_*ter 2 c++ superclass method-call

让我们说有这个:

class A1
{
    public:
        void draw(){}
};

class A2
{
    public:
        void draw(){}
};

class A : public A1, public A2
{};

void main()
{
    A a;
    // I want to invoke the draw() of A1. How can I do that?
}
Run Code Online (Sandbox Code Playgroud)

如果我只是像a.draw()这样做,它就不会让我,因为A1 :: draw()和A2 :: draw()都与此匹配.在这种情况下我该怎么办?我如何调用A1的平局()?

Pio*_*cki 7

你可以写 a.A1::draw();

#include <iostream>

class A1
{
public:
    void draw(){ std::cout << "A1::draw()"; }
};

class A2
{
public:
    void draw(){ std::cout << "A2::draw()"; }
};

class A : public A1, public A2
{};

int main()
{
    A a;
    a.A1::draw();
}
Run Code Online (Sandbox Code Playgroud)

现场演示链接