在全局中直接调用类的静态成函数会产生重复声明错误。
例如:
FooClass::FooStaticFunction();
如果在全局中间接调用类的静态成员函数则不会产生错误,但是会产生多余的全局变量。
int redunt =FooClass::FooStaticFunction();
总结:
在程序入口(例如main)被调用前,全局变量会被初始化,还会有函数的定义,函数的声明。
上面直接调用类的静态成员函数被当做了声明,导致错误。
为什么会被当做了函数声明,而不是函数调用?
因为如果在这里就可以进行函数调用,那么程序究竟有几个入口?总体的结构会混乱。
为什么间接调用可以?
因为初始化全局变量的时候会进行求值,函数调用。但这种函数调用不会是的程序的总结结构混乱。