比如
一个CPP文件中:定义并且调用了这个函数
inline const int Test(){ return 1;}
另一个文件:定义并且调用了一个同名实现不同函数
inline const int Test(){ return 2;}
那么整个程序中,只有第一个CPP里的Test函数存在,第二个文件里Test也会返回1
要避免这个问题只能改用纯static函数
太惨了,试了四个小时才确定这坑爹问题。
=====================================
2014年11月2日又发现一个更惨的问题:
如果在不同的文件里定义同名的类,不同的类的成员函数的实现,即使定义成inline,全局也会只有一个函数被实现并且调用。理论上inline应该就是宏。
具体类定义成不同名字,然后调用是用typedef成相同名字,就可以在共同的代码里编译并且运行正常了