私はメッセージを聞くシンプルなサーバーを含む小さなプロジェクトに取り組んでいます。クラス内の関数型を作成できますか?
class Message;
class Server
{
void handler1(Message msg);
void handler2(Message msg);
.
.
.
void handler19(Message msg);
};
iがvoid
を返し、このような単一Message
変数と呼ばれるMSGを取得するクラスServer
の新しい関数型を作成することができます:
typedef void(Server::*MessageHandler)(Message msg);
我々は以下のクラスを持っていると仮定すると
したがって、クラス宣言は次のようになります。
class Server
{
MessageHandler handler1;
.
.
.
MessageHandler handler19;
}
sqlite3コールバック関数(ここでは関数宣言が最もクリーンではない)を使うと便利でしょう。
可能であれば、どうすればこのような機能を実装できますか?
これができない場合は、C#代理人のようにコードをよりシンプルにする方法はありますか?
ありがとうございます!コードについて
私は、これは特定の良いアイデアだとは思いません。 –
C++ 11へのアクセス権があれば、次のようなことができます:http://stackoverflow.com/questions/12338695/c11-styled-callbacks – RyanP