알고리즘을 클래스에 캡슐화하는 것이 얼마나 일반적인 것인지 궁금합니다. 보다 구체적으로, 대신 서로간에 공통 매개 변수를 전달하는 별도의 기능을 수있는의 :알고리즘을 클래스로 캡슐화하기
void f(int common1, int param1, int *out1);
void g(int common1, int common2, int param1, int *out2)
{
f(common1, param1, ..);
}
클래스에 공통 매개 변수를 캡슐화하고 생성자에서 모든 작업을 수행합니다
struct Algo
{
int common1;
int common2;
Algo(int common1, int common2, int param)
{ // do most of the work }
void f(int param1, int *out1);
void g(int param1, int *out2);
};
을 함수 인수를 통해 일반적인 매개 변수와 중간 결과를 전달하지 않아도되는 것은 매우 실용적인 것처럼 보입니다. 그러나이 "패턴"이 널리 사용되는 것을 보지 못했습니다. 가능한 단점은 무엇입니까?
operator()를 사용하여 함수 객체가 실행되기를 기대합니다. –