추가 기능을 추가 할 필요가있는 기존 메서드 또는 함수가 있지만 코드의 다른 곳에서 메서드를 사용하고 싶지 않습니다. 예 :기존 API 확장 : 기본 인수 또는 래퍼 함수를 사용 하시겠습니까?
int foo::bar(int x)
{
// a whole lot of code here
return 2 * x + 4;
}
은 코드베이스에서 널리 사용됩니다. 이제는 매개 변수로 4를 만들 필요가 있지만, foo :: bar를 호출하는 코드는 여전히 예상대로 받아 들여야합니다. 나는 확장하고 기존의 방법을 이름을 변경하고 같은 새에
int foo::extended_bar(int x, int y)
{
// ...
return 2 * x + y;
}
int foo::bar(int x)
{
return extended_bar(x,4);
}
그것을 포장 또는 나는
int bar(int x, int y=4);
같은 헤더 파일에 기본 인수를 선언해야하고 단지 기능을 확장해야
int foo::bar(int x, int y)
{
// ...
return 2 * x + y;
}
각 변형의 장점과 단점은 무엇입니까?
내게 물질이 아닌 스타일처럼 보입니다. 둘 다 실행 가능한 솔루션입니다. – Robert