데이터 처리를위한 여러 함수를 호출하는 알고리즘이 있습니다. 이 함수들 각각은 많은 변수를 공유하고 조작합니다. 따라서 나는 많은 변수가 STL 컨테이너이므로 특히 읽기가 어려워지면 참조 인수의 긴 목록을 포함하는 함수 세트를 사용하지 않도록 노력하고 있습니다. 아마도 더 나은 방법이 있는지 난 그냥 궁금 해요함수를 사용하여 함수 작성기 호출하기
class myfunctor {
private:
... list of shared members ...
void A(..args..) { ..do some work on shared members.. }
void B(..args..) { ..do some work on shared members.. }
void C(..args..) { ..do some work on shared members.. }
public:
void operator()(class1& X, class2& Y) {
A(..);
..
B(..);
..
C(..);
..etc..
}
};
void algorithm(class1& X, class2& Y) {
myfunctor obj;
obj(X, Y);
}
아래와 같이 그 결과, 나는, 알고리즘의 작업을 수행하기 위해 펑터를 구현하고, 펑하는 기능 래퍼를 정의 같은 변수에 의존하는 여러 함수를 구현하고 이것이 나쁜 관행이라면?
@anon는 -. 아, 내가 전에 그 눈치 적이 없어요. 고마워. – entitledX
왜 이것을 함수가 아닌 함수로 만드시겠습니까? 인수 목록이 정말 다루기 힘들다면 'A (class1 & X, class2 & Y)', 'B (class1 & X, class2 & Y)'등을 사용하지 않을까요? – Beta
함수 내에서 X와 Y는 어떻게 사용됩니까? 이 코드 샘플에서는 당신이 무엇을하려고하는지 명확하지 않습니다 - 좀 더 구체적인 예를들 수 있습니까? 설명에서 함수가 멤버 함수 여야한다고 들립니다. –