2011-08-24 3 views
0

main() (C++)을 최대한 깨끗하고/작게 유지하려면 몇 가지 옵션을 선택할 수 있지만 어느 것이 가장 좋습니까? main에있는 모든 변수를 초기화하고, main, global, .h에서 초기화하고, main에서 초기화합니다. 그러나 다른 곳에서는 값을 설정합니다 (함수에 넘김). 다른 방법이있을 수 있지만, 주()를 가능한 한 깨끗하고/깨끗하게/작게 유지하는 가장 좋은 방법은 무엇입니까?어수선하게 정리 된 main()을 정리하는 방법은 무엇입니까?

+4

에는 "BEST"방법은 없습니다. 뭐든지 요. 사실이 경우 나는 목표가 실제로 가치 있다고 생각조차하지 않습니다. –

+2

이것은 현재의 형태로는 대답하기가 너무 모호하며 많은 의견을 제시합니다. 당신이 코드를 유지할 사람에게 의미가 있다고 생각하는 것을하십시오 ... – Nim

+0

당신은 둘 다 유효한 포인트를 가지고 있습니다. – Rhexis

답변

2

의미있는 클래스에서 데이터 및 연산을 캡슐화하는 것과 같은 몇 가지 공통 패턴이 있습니다. 예를 들어 명령 줄 인수 나 파일에서 구성을 처리하는 경우 argcargv 및/또는 가능하면 파일로 초기화하는 Config 클래스를 만든 다음이를 사용자가 제어 할 수있는 매개 변수의 저장소로 사용할 수 있습니다.

또 다른 일반적인 패턴은 멤버 속성과 상태를 포함하고 멤버 함수를 run (당신이 원하는대로 또는 main이 호출)가있는 클래스에 main의 모든 이동합니다. 이렇게하면 main의 쉬운 리팩터가 허용되며, 모든 상태를 함수 인수로 전달할 필요가 없습니다. 때로는이 두 옵션이 혼합되어 클래스가 main의 인수로 초기화됩니다.

가에 따라 같은 명확한 답이 없다

무엇을 당신의 main 현재 어떤 경우에는 여전히 유지하는 것이 할 수 있습니다,하고있는 긴 틱 주 다른 부분은 명확하게 분리가 없는 경우 너무 긴 틱주관적 조치입니다 긴 ...

9

돼지 인플루엔자 (fluine)와 같은 전역/독신을 피하십시오. 나쁜 습관이고 더 큰 멀티 스레드 프로젝트에 실제로 나쁜 영향을 미칠 수 있습니다. 당신은 C++을 사용하고, 당신은 잘 당신이해야 할 모든 주에서 다음, 당신/당신의 코딩 스타일을 제품군 스타일에 반영 모든 것을 갖추고 하나 개의 큰 관리자 유형 클래스로 응용 프로그램을 래핑 할 수 보는 것은입니다 :

int main(int argc, char** argv) 
{ 
    Application MyApp(argc,argv); 
    return MyApp.start(); 
} 

꽤 정리 된

관련 문제