首页 > 解决方案 > C ++中的多个定义,包括标题

问题描述

我有一个包含多个文件的项目,如下所示:

//header.h
class example {...}

//variable.h
#include "header.h"
example ex;

//main.cpp
#include "variable.h"
....

//src1.cpp
#include "variable.h"

编译时编译错误为:“ex”的多个定义我不明白为什么,我想在main.cpp和src1.cpp中使用“ex”,我该怎么做。谢谢,

标签: c++

解决方案


通过 #include variable.hin both main.cppand ,您已经定义了两次src1.cpp变量。链接器ex(不是编译器)不会喜欢这样。

相反,改为variable.h如下所示:

extern example ex;

并提出:

example ex;

在(说)src1.cpp

是的,也可以使用包括警卫,但这不是这里的问题。


推荐阅读