C++的一个项目文件,在一个头文件中用extern声明了一个对象,另一个文件中直接引用却提示是未定义的引用

在图1的文件中定义了externLogBufferg_LogBuffer;然后在图2的文件里引用了g_LogBuffer这个对象,但是编译一直通不过,提示是未定义的应用,... 在图1的文件中定义了extern LogBuffer g_LogBuffer;然后在图2的文件里引用了g_LogBuffer这个对象,但是编译一直通不过,提示是未定义的应用,可是我在图2 的文件里也加入的图一的头文件,然后文件都是放在同一目录下的,这是为什么呀? 展开
 我来答
老猴子不会胖
2018-04-26 · TA获得超过267个赞
知道小有建树答主
回答量:286
采纳率:81%
帮助的人:60.8万
展开全部
在1里定义不用写extern
在2里引用要 用extern声明吧!
c语言是这样,c++应该也是
你搞反了
追问
我后来把1,2文件一起编译就没提示这个问题了,但是只编译2就会提示未定义的引用,我也尝试了1里不写extern声明,在2里引用时进行extern声明,但只编译文件2时,仍然会提示g_LogBuffer是未定义的引用,这是为什么呀
yyzz332302
2018-05-17 · TA获得超过131个赞
知道答主
回答量:45
采纳率:0%
帮助的人:22万
展开全部
很明显第一张图是头文件的代码
在头文件中只是声明了文件类型为LogBufer的外部变量g_LogBuffe。在第二图.C文件并没有定义这个变量。所以会报错。
如:extern int a;//声明全局变量a
int a;//这样才是定义变量
extern int a=0//定义一个全局变量a并赋值
int a=0;//定义一个变量a并赋值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式