C++的全局函数有以下几个限制:
全局函数必须在全局作用域中定义。这意味着它们不能在任何类或函数的内部定义。
全局函数可以访问全局变量和全局常量,但不能直接访问类的成员变量和成员函数。要访问类的成员,需要使用类的对象或者通过成员函数进行访问。
全局函数不能直接访问其他函数的局部变量。局部变量的生命周期仅限于定义它的函数内部,全局函数无法直接访问这些变量。如果需要在全局函数中访问局部变量,可以将其声明为全局变量或者通过静态局部变量的方式实现。
全局函数不能被声明为const。const关键字用于修饰成员函数,表示该函数不会修改类的成员变量。而全局函数没有成员变量,因此不能使用const关键字进行修饰。
全局函数的命名不能与已有的全局变量或函数重名。否则会导致编译错误,因为编译器无法区分不同的符号。
全局函数可以被其他源文件包含和使用。这意味着在多个源文件中可以定义相同的全局函数,只要它们的作用域和链接方式正确即可。
全局函数可以被声明为extern,表示该函数在其他源文件中定义。这有助于实现代码的模块化和重用。