Wat betekent:?

Ik heb 2 lessen:

class base {
    virtual void foo() {};
};
class derived : public base {
    void foo() { base::foo(); }
};

Ik heb een fout gemaakt en heb base:foo();geschreven in plaats van base::foo();. De code is gecompileerd en uitgevoerd, maar vertoont een seg-fout.

Ik weet niet hoe ik het kan googlen en weet niet wat het is, maar ik ben erg geïnteresseerd: wat betekent dat?

base:foo();

Als het belangrijk is:

class base : public QAbstractGraphicsShapeItem

Antwoord 1, autoriteit 100%

void foo() { base:foo(); }

is gelijk aan:

void foo()
{
   base: // An unused label.
   foo(); // Calls the function again, resulting in infinite recursion.
}

Als gevolg van oneindige recursie veroorzaakt de functie stack overflow.

Other episodes