2013-01-11 2 views
-2

Linux에서 C++을 사용하고 있습니다.Linux에서 중복 된 C++ 코드를 하나의 함수로 대체

두 가지 기능으로 중복 된 코드를 제거해야합니다.

하나의 기능은 컴퓨팅 용이고 다른 하나는 로깅 용입니다.

logging()에 중복 된 코드가 있는데, 이는 computing()보다 훨씬 길다.

중복 된 코드는 logging()에서 별도로 배포되므로 이는 computing()에서 복사하여 붙여 넣는 것이 아니라는 의미입니다.

중복 된 부분을 한 줄씩 찾아서 제거한 다음 computing()에서 로깅에 매개 변수로 전달하여 필요한 결과를 바꿔야합니다.

이것을 처리하는 효율적인 방법이 있습니까?

+0

매크로 이외에? –

+5

당신의 두뇌는 직업에 적합한 도구 일 것입니다. :) – netcoder

답변

3

함수를 나란히보고 코드의 공통 블록을 식별 한 다음이 공통 블록을 개별 메소드/함수로 인수 분해합니다.

+0

일부 코드 행은 블록 단위로 복사되지 않고 인터리브됩니다. –

1

병합 할 필요가 없습니다. 하지만 실제로는 bool do_logging 매개 변수가있는 일반적인 기능 하나만 있으면됩니다.