热门关键字:  ubuntu  分区  linux系统进程  函数  Fedora

当前位置 :| 主页>Linux教程>编程开发>C++>

多文件包含同一头文件导致链接时重定义错误

来源: 作者: 时间:2007-11-20 Tag: 点击:
 如
#ifndef GLOBAL_H
#define GLOBAL_H

const int a = 3;
const char *STR = "ABC";

#endif

然后在a.cpp和b.cpp中都包含这个头文件,结果显示STR重定义。

解释:
STR被赋值,所以已不再是声明,在两个文件中出现会导致赋值两次,从而导致重定义。而int型则经过优化,相当于常量了。

教训:
原则上.头文件里只有声明,不应该有初始化语义
最新评论共有 4 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
栏目列表