ちょっと準備運動しました?
#include <iostream>
#include <string>
#include <map>
class SpriteBank
{
public:
    SpriteBank() = default;
    ~SpriteBank() = default;
    bool myGetMessage(std::string* byref_str, std::string byval);
};
using PF = bool (SpriteBank::*)(std::string*, std::string);
bool SpriteBank::myGetMessage(std::string* byref_str, std::string byval) {
    *byref_str = byval;
    return true;
}
class PlayerController
{
public:
    PlayerController();
    ~PlayerController();
    std::string Func(PF pt_func);
private:
};
PlayerController::PlayerController()
 {
}
PlayerController::~PlayerController()
 {
}
std::string PlayerController::Func(PF pt_func)
{
    SpriteBank obj;
    std::string msg;
    bool b = (obj.*pt_func)(&msg, "メッセージを受信しました。");
    return msg;
}
int main()
{
    SpriteBank* sprite_bank_ = new SpriteBank;
    PlayerController controller;
    PF tetraPF = &SpriteBank::myGetMessage;
    std::string bind_text = controller.Func(tetraPF);
    std::cout << bind_text << std::endl;
    delete sprite_bank_;
    return 0;
}
出力結果

tetraPFはクラスメソッド(関数)ポインタです。
これにクラスのメソッドを別のクラスに渡して、メソッドをリモート実行します。
 
  
  
  
  

コメント