gpt4 book ai didi

c++ - 我遇到二维数组重定义错误

转载 作者:行者123 更新时间:2023-11-27 23:36:23 25 4
gpt4 key购买 nike

我的定义数组 int mang[max][max] 有一个错误(实际上是 3 个相同的错误),我找不到任何正确修复它的方法,所以我希望有人会注意到我的问题并尽快帮助我。 XD

在我的标题 file array.h 中,我有:

#include <iostream>
#define max 100
using namespace std;
int mang[max][max];

void NhapMang(int mang[][max], int hang, int cot);
void XuatMang(int mang[][max], int hang, int cot);
int TinhTongPhanTu(int mang[][max], int hang, int cot);
int DemPhanTux(int mang[][max], int hang, int cot);

当我输入代码时,VS 显示整个 .cpp 文件“没有发现问题”,但是当我调试代码时,错误出现在头文件 array.h,一共说“C2086 'int mang[100][100]':重新定义”。我认为我已经定义了 mang 两次或更多次,但我找不到其他 mang 定义,如果找到也无法修复它。 This is the capture of the error list .我不知道在我的项目中我需要提供哪些部分来帮助我修复它(而且我还认为如果我将所有代码复制粘贴到这里,我的帖子会变得太长难以阅读:-( ),所以如果您需要任何进一步的信息,请发表评论,我会提供给您。

好吧,我刚开始学习 C++ 3 个月,所以还有很多我还不知道的东西 XD 如果在您解决问题的方式中有任何我不明白的地方,请让我问您更多信息。

希望您明白我的意思 XD(因为我不是母语人士)。感谢您的阅读。

最佳答案

语言规则说:

[basic.def.odr]

Every program shall contain exactly one definition of every non-inline function or variable that is odr-used in that program outside of a discarded statement; no diagnostic required. ...

(在进一步的规则中列出了一些具有限制的异常(exception)情况,但没有一个适用于您的示例)


int mang[max][max];

这是一个变量的定义。该定义在头文件中。头文件通常包含到多个翻译单元中。如果这样做,则您已变量的定义包含到多个翻译单元中。通过对非内联变量进行多个定义,您将违反上面引用的规则。

关于c++ - 我遇到二维数组重定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58919042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com