이런함수가 나은거냐
1번
void User::SetUserInfo()
{
string user_name;
cout << "Please write new user's name : ";
cin >> user_name;
User::name = user_name;
}
2번
void User::SetUserInfo(string user_name)
{
User::name = user_name;
}
상황은 이름입력을 여러번 해야함 그러니까 2번식으로 하면 항상앞에
cin 하고 cout 로 출력하고 해야하는데 1번씩으로만 하면 함수호출1번만 하면 해결되니까..
그런거임
쓰이는 코드는
cout << "-USER CREATING-" << endl;
user->SetUserInfo();
user->ShowUserInfo();
대충 이런상황임. 이게 이렇게 함수2개가 연달아 호출되는데
이것도 개병신 습관임? 그럼 어떻게 고쳐야지 약간더 쉽게 할수있을까
함수 호출은 띄지 말고 그냥
user->SetUserInfo();
user->ShowUserInfo();
이렇게 붙여 넣을까?
무조건 2번식이 났고 함수원형은 void SetUserInfo( const string& user_name ) 으로 바꾸는게 좋다
ㅇㅇ const를 넣는 이유는 참조변수니까 혹시나 값을 바꾸면 젖대는거라서 값을 얻기만 하고 set은 못하도륙 하기 위해서임? 고마움 - dc App
민우님 후자가 낫고, 코드 모듈화 잘하는것도 결국 하나는 인수분해처럼 공통인거 뽑아내는거고 다른하나는 글쓸때 소주제별로 문단을 구성하는것 같은 것임. 함수 구현 한 덩어리가 레고블럭 하나라고 생각하고 떼다가 다른데 갖다 붙였을때 안고치고 쓸 수 있나 그런 기준으로 생각하세요.
결국은 많이 짜보고나면 이게 제일 깔끔하구나 감이 옵니다.
ㄴ flower님 프갤 상위 0.01프로 킹갓짱 - dc App
1번코드가 낫다고 봄 - dc App
뭘로 짜던간에 함수는 1개의 일만 하도록 하는게 유지보수성으로 보나 가독성면으로 보나 좋은데 - dc App
1번은 setUserInfo 함수에서 1. 표준입출력을 통해 문자열을 입력받고, 2. 문자열을 메모리에 저장하는 2개의 일을 하고 있음 - dc App
더불어 setter / getter 함수에서는 사이드이펙트를 일으킬 수 있는 별도의 동작들을 넣는건 안티패턴에 속함 - dc App