1

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

我有一个我一直在处理的 DLL,女巫正在工作并连接到处理用户界面的项目中。在 DLL 中,我尝试创建一个记录器类,以便将信息调试到接口中。但是当我尝试使用字符串数组时,我得到了 LNK2001 错误。Bellow 是我的课程头文件。

#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];
};

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

4

1 回答 1

3

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

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

建议阅读为什么“使用命名空间标准”被认为是不好的做法?

于 2013-08-05T15:48:26.130 回答