C++에서 function 와 bid 바 인 딩 클래스 의 구성원 함 수 를 사용 하 는 방법 에 대한 상세 한 설명

일반적인 클래스 정의

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 가 아무 소 용이 없다 는 것 을 의미 합 니 다.bid 에 서 는 값 이 연결 되 어 죽 었 지만 pf()가 이렇게 매개 변수 에 잘못 보고 되 지 않 습 니 다.
在这里插入图片描述
인 자 를 정의 하려 면 자리 표시 자 를 사용 하 십시오.std:placeholders::1.다음 그림 을 볼 수 있 습 니 다.출력 값 은 4 입 니 다.

int main(){
	Test1 t;
	function<void(int)> pf = std::bind(&Test1::fun,t,std::placeholders::_1);
	pf(4); 
	return 0;
}
在这里插入图片描述
C++11 새로운 기능 lambda 표현 식 을 사용 합 니 다.[]는 하나의&가 있어 야 합 니 다.이 뜻 은 현재 역할 영역 을 수정 할 수 있 는 변 수 를 말 합 니 다.근 데 이런 페이지 는 방 사 상태 일 거 예요.

int main(){
	Test1 t;
	function<void(int)> pf = [&](int val){t.fun(2);};
	pf(4); 
	return 0;
}
그래서 종 에서 말 한 것 처럼 사용자 정의 값 을 사용 하려 면 std:placeholders::1 … std::placeholders::_n 이 요!
C++에서 function 과 bind 바 인 딩 류 멤버 함 수 를 사용 하 는 방법 에 대한 자세 한 설명 은 여기 서 소개 합 니 다.더 많은 C+function 과 bind 바 인 딩 류 멤버 함수 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 지원 바 랍 니 다!

좋은 웹페이지 즐겨찾기