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.