C++にfunctionとbindバインディングクラスのメンバー関数を使用する方法を詳しく説明します。


普通のクラスを定義します。

class Test1{
public:
	void fun(int val){
		cout<<"hello world "<<val<<endl;
	}
};
最初のテストを開始します。

int main(){
	Test1 t;
	function<void(int)> pf = std::bind(&Test1::fun,t,2);
	pf(4); //
	return 0;
}
出力の値は2です。pfが入っている4は何の役にも立たないと説明しています。bindの時に値はすでにバインディングされていますが、pf()はパラメータに間違いがあります。
在这里插入图片描述
カスタムパラメータを使用したいなら、プレースホルダ、std:placholders:u1,下図を見てもいいです。出力の値は4です。

int main(){
	Test1 t;
	function<void(int)> pf = std::bind(&Test1::fun,t,std::placeholders::_1);
	pf(4); 
	return 0;
}
在这里插入图片描述
C+11の新しい特性のlamban表現を使用して、[]があることに注意してください。この意味は現在の作用領域を変更できる変数です。このページは邦死状態になります。

int main(){
	Test1 t;
	function<void(int)> pf = [&](int val){t.fun(2);};
	pf(4); 
	return 0;
}
ですから宗上の言ったように、カスタムしたいなら、stdを使います。1…std::placholders::unでしょう
ここで、C++の中でfunctionとbindバインディング類のメンバー関数を使う方法について詳しく説明した文章を紹介します。もっと関連したC++functionとbindバインディング類のメンバー関数の内容は以前の文章を検索してください。または下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。