c++ - 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”,我该怎么做。谢谢,
解决方案
通过 #include variable.h
in both main.cpp
and ,您已经定义了两次src1.cpp
变量。链接器ex
(不是编译器)不会喜欢这样。
相反,改为variable.h
如下所示:
extern example ex;
并提出:
example ex;
在(说)src1.cpp
。
是的,也可以使用包括警卫,但这不是这里的问题。
推荐阅读
- java - Bazel 构建 java 演示:构建正常但无法运行
- css - Ionic v4 ion-img 急切地加载图像而不是延迟加载
- opengl - 使用足够大的 SSBO 时,着色器程序上的操作会冻结 GL 上下文
- node.js - 两个集合之间的引用在 MongoDB 上不起作用
- php - 单击按钮后将数据库的值更改为当前日期和时间
- python - 使用 MoviePy 或 FFmpeg 连接 Python 列表中的电影
- python - 使用 Sklearn 按月进行在线逻辑回归
- python - 计算巨大稀疏矩阵的点积时的 MemoryError
- javascript - 在放弃更改时,复选框仍然具有相同的状态
- php - Laravel Eloquent Model::all() 函数中的默认顺序是什么?