회사 레거시코드들 쭉 보고있는데 멤버변수 쓰는 방식이 조금 이해가 안가서 그럼
물론 코드를 그대로 올릴수는 없으니까 적당히 예시를 들어서 쓸게요
헤더가 이렇게 되어있구요
class A
{
. . . . .
sometype someval;
void Start();
void FuncA(sometype& someparam);
void FuncB(sometype& someparam);
void FuncC(sometype& someparam);
. . . . .
}
구현은 이렇게 되어있어요
void Start
{
. . . .
FuncA(someval);
. . . .
}
void FuncA(sometype& someparam)
{
. . . .
FuncB(someparam)
. . . .
}
void FuncB(sometype& someparam)
{
. . . .
FuncC(someparam)
. . . .
}
void FuncC(sometype& someparam)
{
. . . .
}
특정 멤버변수를 그대로 안쓰고 저렇게 멤버함수 파라미터로 넘겨서 쓰더라구요
근데 코드상에서 저 변수가 성능에 굉장히 심각하게 영향을 주는걸로는 안보이거든요?
실제로 멤버변수 그대로 쓰고 돌려도 잘만 돌아갔고
혹시 변수가 여기저기서 쓰이는걸 방지하기위해 저렇게쓴걸까? 하고 생각해봤는데
그렇다고 보기에는 어떤 멤버변수는 그대로쓰고 어떤 멤버변수는 저렇게 파라미터로 넘겨서 사용을 하더라구요 기준을 잘 모르겠는데,,,
아직 무지한 나부랭이라 저렇게 쓰는 의미를 잘 모르겠네요...
회사코드라 복붙해버릴수가 없어서 좀 추상적으로 예시를 들었는데 혹여나 보시는데 혼란이 오셨다면 정말 죄송합니다..
븅신같은데 리팩토링 ㄱㄱ
저런짓 할거면 sometype의 메서드로 빼버리는게 맞지 않나
짠 사람한테 물어보자
바람과같이 사라져버렸어요
아 내생각엔 그거네 ㅋㅋ 말로만 듣던 퇴사전에 코드 꼬아놓고 가는 유형ㅋㅋㅋㅋㅋㅋ 그나마 급조한게 저거 같은데
실타래 엉켜놓고 응 ㅈ까하고 퇴사하는
보통 함수로 묶더라도 게터/세터로만 묶는데 인자로 저걸 받는 건 완전히 잘못 짠거지 멤버변수 값, 외부 값을 동시에 받도록 하려던 의도였다고 해도 그 의도 자체가 잘못됐음
저렇게 짜는 사람이 있나? 시대를 막론하고 없을 것 같은데
내 생각엔 오리지널 코드가 있고, 그걸 클래스화 시키든 뭐 하든 통합하면서 생긴 잔재 같은데. 멤버 변수면 엥간하면 private할 텐데, 굳이 저걸 인자로 받을 필요 없지
누가 C 를 이따위로짬??? 이럴거면 C로 하지를 말지 장점 싹다 날려먹는짓인데
팀장급이 헤더파일을 안봐주니까 이런일이 생김
멤버변수 말고 다른 변수도 쓸 일이 있는 거 아님? - dc App