我们知道,static有三种使用方式:(1)局部静态变量 ;(2)全局静态变量/函数 ;(3)静态数据成员/成员函数
因为static的局部性,全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。但需要注意: 如果在头文件中定义static变量,并被多个文件引用,编译是可以顺利通过的!即该头文件被包含了多少次,这些变量就定义了多少次。
但是要注意一点, 在C++类中定义的静态变量不能在头文件中初始化,一定要在cpp中初始化。
如果将类的静态成员变量在头文件中初始化,当我们在另一个源文件中引用该头文件时,将会出现one or more multiply defined symbols found类似的编译错误。
时间: 2024-10-23 22:53:30