gpt4 book ai didi

c++ - 重复符号错误 C++

转载 作者:IT老高 更新时间:2023-10-28 12:43:11 25 4
gpt4 key购买 nike

我在我的文件中添加了一些 const 字符,如下所示。我得到的错误是重复符号_xyz(比如说)。它有什么问题,我该如何摆脱它。

const char* xyz = "xyz";
class Abc
{
public:
Abc()
{
}
};

最佳答案

如果这是在头文件中,则每次 #include 时都在定义 xyz

您可以按照@R Samuel Klatchko 的说明更改声明。通常的方式(如果数据不是const)是这样的:

在 Abc.h 中:

extern char *xyz;

在 Abc.cpp 中:

char *xyz = "xyz";

编辑添加

请注意, header 保护不会解决此问题:

#ifndef XYZ_H
#define XYZ_H
...
#endif

header 保护可防止“重新定义”错误,即同一符号在同一编译单元中出现两次。这是一个编译器错误。

但即使有 header 保护,xyz 的定义仍然会出现在包含它的每个源文件中,从而导致“重复符号”错误,即 链接器 错误.

当然,如果原始海报提到这一点会更有帮助。

关于c++ - 重复符号错误 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2894957/

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