我面临一个我不明白的错误。
我尝试创建和使用方法指针的静态数组。我班级的声明如下所示:
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 会导致正确编译,tought,链接时出现问题。
client.cpp:71: undefined reference to `Client::packetHandler'
此消息重复 5 次。
欢迎任何帮助。谢谢你。