기본적으로 일부 알고리즘을 실행하는 템플릿이있는 클래스가 있으며이 알고리즘은 T 유형의 두 개체가 비슷한 유형을 정의하는 double을 반환하는 similarity(T t1, T t2)
함수를 필요로합니다. 이 유사 함수는 T가 정의 된대로 크게 달라 지므로이 클래스의 호출자는 유사 함수를 정의해야합니다. 함수 포인터가 순서대로 있다고 가정합니다. 그러나 함수 포인터를 함수에 저장하기 위해 어떻게 멤버 함수로 함수에 저장합니까?어떻게 함수 포인터에서 함수를 클래스의 멤버 함수로 저장합니까?
즉, 클래스의 생성자에 similarity(T t1, T t2)
을 전달하고이를 클래스 전체의 멤버 함수로 호출 할 수 있습니다. 어떻게해야합니까? 감사합니다
함수 포인터 외에도'가상'인터페이스 및/또는'std :: function' /'boost :: function' 명령이있을 수 있습니다. – Flexo
다음은'std :: function'을 사용하지 않는 것입니다 : http://ideone.com/2A4Rc. 'std :: function'에 접근 할 수 있다면 훨씬 더 유연 해집니다. 이를 사용하여 객체의 멤버를 사용하려면'std :: bind'를 사용하여 객체를 바인드 할 수 있습니다. – chris
알고리즘을 사용하여 코드에서 'similarity'의 특수화를 볼 수없는 이유는 무엇입니까? – juanchopanza