关于头文件被多次包含后引起的符号重定义错误
考虑这样一个简单的项目,包含1个main文件,一个头文件,一个cpp文件。
---- main.cpp
#include "head.h"int main(){ func1();}
//#pragma once#ifndef _HEADDDD#define _HEADDDD#include <iostream>using namespace std;int g_number;void func1();#endif
#include "head.h"void func1(){ cout<<"func1 "<<g_number<<endl;}
//#pragma once#ifndef _HEADDDD //建议改为: #ifndef HEAD_H#define _HEADDDD#include <iostream>using namespace std;extern int g_number; //头文件中一般只声明,在.cpp文件中定义void func1();#endif
[解决办法]
既然你都希望const变量在头文件中定义方便到处引用,你为何不把它改为const类型的,你试过吗?
还是自己动手吧,常量的定义当然可以放在头文件里面。
[解决办法]