头文件重复引用的问题
定义了一个类BinaryTree
有BinaryTree.h BinaryTree.cpp
BinaryTree.h中定义了一个全局的变量
#ifndef BinaryTree_
#define BinaryTree_
int _count; // 就是这个变量
#include <iostream>
...
...
...
#endif
在BinaryTree.cpp中#include "BinaryTree.h"
然后在主函数文件中#include "BinaryTree.h"
然后编译程序
报错如下:
error LNK2005: "int _count" (?_count@@3HA) 已经在 2012121803.obj 中定义
2012121803是项目名 也是main所在文件的名称
请问这是为什么?
我再BinaryTree的头文件里已经加入
#ifndef BinaryTree_
#define BinaryTree_
#endif
了
不太明白
[解决办法]
常量才会被包含在.h文件中,变量一般作为全局变量的话,都会声明在cpp文件中
[解决办法]
在头文件中用
extern int _count;,告诉编译器此处的_count在其他文件中定义。
然后在CPP中定义这个变量。