Que signifie?

J’ai 2 cours:

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

J’ai fait une erreur et j’ai écrit base:foo(); au lieu de base::foo(); . Le code a été compilé et exécuté, mais en erreur.

Je ne sais pas comment je peux le Google et je ne sais pas ce que c’est, mais je suis très intéressé: qu’est-ce que cela signifie?

 base:foo(); 

Si c’est important:

 class base : public QAbstractGraphicsShapeItem 

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

est équivalent à:

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

En raison de la récursion infinie, la fonction provoque un débordement de stack.