1

私は主に C# プログラマーですが、このプロジェクトを C++ で行う必要があるため、C++ 配列に何か不足している可能性があります。

私は取り組んでいる DLL を持っています。魔女が働いていて、ユーザー インターフェイスを処理するプロジェクトに接続されています。DLL でロガー クラスを作成しようとしているので、インターフェイスに情報をデバッグできます。しかし、文字列配列を使用しようとすると、LNK2001 エラーが発生します。以下は、クラスのヘッダーファイルです。

#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

メンバー変数は(正確に 1 回)定義staticする必要があります。これは、クラス定義内での宣言のみです。ちょうど 1 つのファイルに次を追加します。.cpp

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

読むことをお勧めしますなぜ「名前空間の標準を使用する」ことは悪い習慣と見なされますか?

于 2013-08-05T15:48:26.130 に答える