1.使用某个名字空间内的类,函数,变量等时使用
最常见的std::string等等
2.类的成员函数在类外实现时使用
3.在类内使用typedef声明了某类型的别名,在类外使用时
如在类A内有这样的声明
typedef long width;
在类外需要定义一个width类型的变量时可以这样写
A::width w;
4.定义或使用类的静态成员变量或成员函数时使用
5.在子类中可用::显式调用父类中的成员函数或成员变量,可以调用到父类被子类覆盖的函数.如子类B和父类A均有void fun();这个函数,因为是函数覆盖,直接调用是调用不了父类中的fun(),这时,只要A::fun()这样显式指明即可调用.
6.要表明某个函数不属于任何类时(通常是类里有成员函数跟全局函数名字相同时使用)
例如在某个内里这样写
::change(int& i); //表明change函数不属于任何类,通常是一个全局函数