把函数定义放在.h之中,并且通过#ifndef来避免重复定义看似不可行
如下:
global_method.h
#ifndef _GLOBAL_METHOD_HEADER
#define _GLOBAL_METHOD_HEADER
#include <iostream>
bool global_method()
{
printf("call global method\n");
return true;
}
#endif // _GLOBAL_METHOD_HEADER
当多次在.h文件和.cpp中被include,就会导致global_method被重定义
当出现这种情况下,经测试,可使用以下几种方法规避:
1,将global_method的定义放在global_method.cpp文件中,在需要调用global_method()地方,include头文件global_method.h
2,不include头文件global_method.h,并且不需要global_method.cpp,仅仅在需要调用global_method()地方,声明一下即可
如下:
//#include "global_method.h"
bool global_method();
int use_global_method()
{
global_method();
return 0;
};