Я столкнулся с ошибкой, которую не понимаю.
Я пытаюсь создать и использовать статический массив указателей на методы. Объявление в моем классе выглядит так:
static void (Client::*packetHandler[Op::handledOpcodeMax - Op::handledOpcodeMin + 1])(QByteArray &data);
Инициализация происходит в моих .cpp файлах так:
void (Client::*packetHandler[Op::handledOpcodeMax - Op::handledOpcodeMin + 1])(QByteArray &data);
Здесь возникают проблемы, в одном из методов класса моего Клиента я пытаюсь использовать массив указателей этих методов.
Я пробовал несколько способов, например:
(this->*packetHandler[_opcode])(data);
Я сказал, что не понимаю проблемы, позвольте мне объяснить, почему. Запуск make в моем коде приводит к правильной компиляции, но проблема связана с компоновкой.
client.cpp:71: undefined reference to `Client::packetHandler'
Это сообщение повторяется 5 раз.
Любая помощь будет приветствоваться.
Спасибо.