理解できないエラーに直面しています。
メソッドポインタの静的配列を作成して使用しようとしています。私のクラスの宣言は次のようになります。
static void (Client::*packetHandler[Op::handledOpcodeMax - Op::handledOpcodeMin + 1])(QByteArray &data);
私の.cppファイルで初期化は次のように行われます。
void (Client::*packetHandler[Op::handledOpcodeMax - Op::handledOpcodeMin + 1])(QByteArray &data);
ここに問題があります。私のクライアントのクラスメソッドの1つで、このメソッドポインタの配列を使用しようとしています。私はいくつかの方法を試しました、例えば:
(this->*packetHandler[_opcode])(data);
私は問題を理解していないと言いました、理由を説明させてください。私のコードでmakeを実行すると、適切にコンパイルされます。リンク時に問題が発生します。
client.cpp:71: undefined reference to `Client::packetHandler'
このメッセージは5回繰り返されます。
どんな助けでも大歓迎です。ありがとうございました。