Derived-Klasse erbt keine überladene Methode von der Basisklasse

Ich möchte, dass eine Methode in einer Basisklasse eine rein virtuelle Methode aufruft, die in einer abgeleiteten Klasse implementiert wird. Die parameterlose Methode der Basisklasse scheint jedoch nicht von der abgeleiteten Klasse geerbt zu werden. Was mache ich falsch? Compiler ist MSVC12.

Fehler C2660: 'Derived :: load': Funktion akzeptiert keine 0 Argumente

Hier ist ein vollständiges Beispiel (das aufgrund des Fehlers nicht kompiliert wird):

struct Base
{
    void load() { load(42); }; // Making this virtual doesn't matter.
    virtual void load(int i) = 0;
};

struct Derived : Base
{
    virtual void load(int i) {};
};

int main()
{
    Derived d;
    d.load(); // error C2660: 'Derived::load' : function does not take 0 arguments
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage