那只是建议,并不是绝对的
通常情况头文件是只存放声明,而.cpp文件存放定义
但也有例外,比如模板类。
如果头文件中存放变量的定义,而其他多个cpp文件包含了这个头文件,可能会导致该变量被重复定义而出现链接错误
不把变量定义放在头文件中是为了不让多个cpp文件包括该头文件时产生重复定义,出现错误,这是个好习惯,尽量遵守
另外,你说的MFC把变量都放在头文件中,我怎么没发现?
我告诉你为什么,实际上是可以吧定义也写在头文件的,可是单工程变大了了,一旦你修改了某个函数,所有包含了该头文件的cpp文件都要重新编译,链编,可是假如是吧声明写在h文件定义写在cpp文件,不修改申明只修改定义的话只会重新编译这个cpp文件,很明显的可以看出二者的效率差距。