Ceci est l'opérateur de résolution de portée. Il est nécessaire lorsque vous souhaitez référencer des fonctions membres statiques depuis l'extérieur de la classe, ou définir des fonctions membres en dehors de la classe. Il est également nécessaire lors de l'utilisation de types ou de fonctions provenant d'un espace de noms (par ex., std::cout, std::cin, std::string, etc.)

Exemple

class Test{ public: Test(); static void print() { std::cout<<"Test"<<endl; //Utiliser :: avec les espaces de noms } private: int a; }; Test::Test() : a(1) //Utiliser :: lors de la définition {} Test::get(); //Utiliser :: lors de l'utilisation de fonctions membres statiques