c++ - 为什么字符串数组会导致 LNK2001 错误?

标签 c++ arrays string std lnk2001

我主要是一名 C# 程序员,但我需要用 C++ 完成这个项目,所以我可能会遗漏一些 C++ 数组的内容。

我有一个我一直在使用的 DLL,女巫正在工作并连接到处理用户界面的项目中。在 DLL 中,我试图制作一个记录器类,以便我可以将信息调试到界面中。但是当我尝试使用字符串数组时出现 LNK2001 错误。下面是我的类(class)头文件。

#include <string>
using namespace std;
class Logger
{
public:
    static string& GetLog();
    static void Log(string message);
private:
    static const int maxLogs = 1000;
    static string logs[maxLogs];
};

如果我删除字符串数组,错误就消失了,但我需要一种方法来存储我的日志消息

最佳答案

static 成员变量必须定义(恰好一次),这只是类定义中的一个声明。在一个 .cpp 文件中添加:

std::string Logger::logs[Logger::maxLogs];

推荐阅读Why is "using namespace std" considered bad practice?

关于c++ - 为什么字符串数组会导致 LNK2001 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18062287/

相关文章:

java - 类未显示在运行配置中?

php - 如何检查与php中的随机字符匹配的数组数据?

java - 使用数组并对元素求和

c++ - 如何使用迭代器初始化映射的关键字段?

c++ - 理解字符引用

c++ - 带字符串检查的哈希表

c++ - 如何为嵌套循环配置 openMP 以保持内部循环不并行化?

c++ - 通过套接字多路复用数据

c# - 无法在 C# 中使用 String.Format

python - 如何访问 Python 字符串中的第一个字符和整数对?