::作用域运算符, 左部表示右部符号的作用域, 左部为空时表示全局作用域. 一般情况下, 全局作用域的函数和变量可以不指定作用域而直接使用. 但当代码作用域内有同名函数或变量出现时, 两者就会冲突. 由于程序默认是使用代码作用域内的符号, 如果需要指定使用全局符号, 就需要加上::表示是使用全局作用域. 比如 int var1 = 0; int func() { int var1 = 3; //return var1; // return 3; return ::var1; // return 0; } 代码中的::max也是同样的含义.