读书人

头文件重复引用的有关问题

发布时间: 2013-01-07 10:02:25 作者: rapoo

头文件重复引用的问题
定义了一个类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中定义这个变量。

读书人网 >C++

热点推荐