类里面放声明;
类外面放定义;
声明放在.h
实现放在.cpp
实现时不需要加static
编译通过不代表对!!!
如果一个变量在头文件定义,一般得目的就是要定义一个全局变量,这个变量应该在整个工程都可以被访问到。
而static得含义是迫使那个变量只在某个文件可见。
假定你在头文件定义static int i=1;
且这个头文件分别被a.cpp和b.cpp包含
这种情况吓当然不会有编译错误。
“没有错误”的实质是在a.cpp和b.cpp里会分别定义一个名字叫i的整型变量,两个i毫无关系。在a.cpp里修改i,他不会导致b.cpp里的i变化,这一般来说都不是大家期望的东西
种用static修饰的方法在99%以上的情况都是错误的。把编译错误弄没不是编程的目的,目的在于真正逻辑的正确性