Я в основном программист на 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];
};
Если я удаляю строковый массив, ошибка исчезла, но мне нужен способ хранения сообщений журнала
static
переменная-член должна быть определенный (ровно один раз), это только декларация в пределах определения класса. Ровно в один .cpp
добавление файла:
std::string Logger::logs[Logger::maxLogs];
Предложить чтение Почему "используя пространство имен std" считается плохой практикой?
Других решений пока нет …