首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于C++引用头文件 重定义的有关问题

2014-01-06 
关于C++引用头文件 重定义的问题环境VS2010建的MFC工程xxx在自动生成的文件 xxxDlg.cpp里面 include A.h

关于C++引用头文件 重定义的问题
环境VS2010  建的MFC工程xxx
在自动生成的文件 xxxDlg.cpp里面 include A.h 和 B.h 两个头文件
然后还有个A.cpp include A.h    A.h里面声明的函数  A.cpp里面定义的函数


然后问题是。
如果我在xxxDlg.cpp 和 A.cpp 里面  同时include B.h  这时编译就会出现重定义错误
一定要去掉一个才能正常编译。。这是怎么回事啊。。。

我A.h B.h 都加有 #pragma once  怎么还会重定义呢。。这个不是防止重定义的么。。后来我连A.cpp里面都加上#pragma once  也是重定义。。到底应该怎么做呢?

[解决办法]
B.h里不要有任何定义,不单单是函数的定义,还有变量的定义,比如
int a = 3;
这也是不允许的,必须改成这样


//头文件
extern int a;
//cpp文件
int a = 3;

热点排行