0
전문 될 필요가 이 메서드를 호출하려면기본 클래스 나 메소드 포인터를 관리하는 클래스가 파생 클래스
FNMETHOD f = ...;
(pC->*f)();
이제 이러한 우선 순위 객체를 소유하는 기본 클래스가 있습니다. 그러나이 객체는 파생 된 클래스에서만 특수화되어야합니다 (그렇지 않으면 기본 클래스의 메서드 만 사용할 수 있습니다). 결국 나는 Base에서 파생 된 클래스의 컬렉션 (예 : 벡터)을 가질 수 있고 우선 순위 객체로 구성된 메소드를 호출 할 수 있기를 원합니다.
는 더 좋은 방법이 있나요 ... 그것은 하나가 정의하는 것입니다 클래스와 템플릿을 전문으로하는 어색한 것 같다 나에게template<class C>
class Base {
public:
// ... other stuff ...
Prioritizer<C> m_prio;
}
class Der1 : public Base<Der1> {
public:
virtual int testDer1();
int init() {
m_prio->setPrio(7, testDer1);
};
}
:
내가 생각 해낸 최선이 무엇입니까?
당신은std::function<int(void)>
객체를 저장할 수 있습니다 당신에게 조디
고마워요! std :: bind를 사용해야한다는 것을 알기까지 잠시 시간이 걸렸지 만 이제는 작동합니다! – user1479670