main() (C++)을 최대한 깨끗하고/작게 유지하려면 몇 가지 옵션을 선택할 수 있지만 어느 것이 가장 좋습니까? main에있는 모든 변수를 초기화하고, main, global, .h에서 초기화하고, main에서 초기화합니다. 그러나 다른 곳에서는 값을 설정합니다 (함수에 넘김). 다른 방법이있을 수 있지만, 주()를 가능한 한 깨끗하고/깨끗하게/작게 유지하는 가장 좋은 방법은 무엇입니까?어수선하게 정리 된 main()을 정리하는 방법은 무엇입니까?
0
A
답변
2
의미있는 클래스에서 데이터 및 연산을 캡슐화하는 것과 같은 몇 가지 공통 패턴이 있습니다. 예를 들어 명령 줄 인수 나 파일에서 구성을 처리하는 경우 argc
및 argv
및/또는 가능하면 파일로 초기화하는 Config
클래스를 만든 다음이를 사용자가 제어 할 수있는 매개 변수의 저장소로 사용할 수 있습니다.
또 다른 일반적인 패턴은 멤버 속성과 상태를 포함하고 멤버 함수를 run
(당신이 원하는대로 또는 main
이 호출)가있는 클래스에 main
의 모든 이동합니다. 이렇게하면 main
의 쉬운 리팩터가 허용되며, 모든 상태를 함수 인수로 전달할 필요가 없습니다. 때로는이 두 옵션이 혼합되어 클래스가 main
의 인수로 초기화됩니다.
무엇을 당신의 main
현재 어떤 경우에는 여전히 유지하는 것이 할 수 있습니다,하고있는 긴 틱 주 다른 부분은 명확하게 분리가 없는 경우 너무 긴 틱 긴주관적 조치입니다 긴 ...
9
돼지 인플루엔자 (fluine)와 같은 전역/독신을 피하십시오. 나쁜 습관이고 더 큰 멀티 스레드 프로젝트에 실제로 나쁜 영향을 미칠 수 있습니다. 당신은 C++을 사용하고, 당신은 잘 당신이해야 할 모든 주에서 다음, 당신/당신의 코딩 스타일을 제품군 스타일에 반영 모든 것을 갖추고 하나 개의 큰 관리자 유형 클래스로 응용 프로그램을 래핑 할 수 보는 것은입니다 :
int main(int argc, char** argv)
{
Application MyApp(argc,argv);
return MyApp.start();
}
꽤 정리 된
관련 문제
- 1. 비트 맵을 정리하는 방법은 무엇입니까?
- 2. Eclipse에서 결합 된 vars 선언을 정리하는 방법은 무엇입니까?
- 3. TeamCity에서 오래된 빌드 실패를 정리하는 방법은 무엇입니까?
- 4. Java에서 열린 프로세스를 정리하는 방법은 무엇입니까?
- 5. GC 정리 방법은 무엇입니까?
- 6. applicationDidEnterBackground에서 AVCaptureSession을 정리하는 방법은 무엇입니까?
- 7. MonoTouch에서 스레드를 정리하는 방법은 무엇입니까?
- 8. 기호 저장소를 정리하는 방법은 무엇입니까?
- 9. Mercurial 저장소를 정리하는 방법은 무엇입니까?
- 10. Spork 출력을 정리하는 방법은 무엇입니까?
- 11. Autotools : lighttpd 프로젝트에서 "./configure"로 만든 파일을 정리하는 방법은 무엇입니까?
- 12. 레일 프로젝트에서 루비를 철저히 정리하는 방법은 무엇입니까?
- 13. Entity Framework 개체 컨텍스트를 정리하는 방법은 무엇입니까?
- 14. 모든 사용자의 세션을 정리하는 방법은 무엇입니까?
- 15. 런타임 중에 암호 해독 된 파일을 정리하는 방법은 무엇입니까?
- 16. Subversion 저장소를 정리하는 가장 좋은 방법은 무엇입니까?
- 17. 벡터/맵을 올바르게 정리하는 방법은 무엇입니까?
- 18. regex를 적용하거나 전화 문자열을 정리하는 방법은 무엇입니까?
- 19. 큰 테이블을 빠르게 정리하는 방법은 무엇입니까?
- 20. 응답 작성 후 threadlocals를 정리하는 방법은 무엇입니까?
- 21. SQL Server 2008에서 들어오는 문자열 필드를 정리하는 효율적인 방법은 무엇입니까?
- 22. 정리 Antscript
- 23. Django : formsets를 반복하고 정리 된 데이터에 액세스하는 방법은 무엇입니까?
- 24. 예외가 발생하는 동안 StreamWriter를 정리하는 방법은 무엇입니까?
- 25. devenv로 하나의 프로젝트 파일을 정리하는 방법은 무엇입니까?
- 26. HTML5 웹 데이터베이스를 정리하는 방법은 무엇입니까?
- 27. 제목이있는 URL을 정리하는 가장 좋은 방법은 무엇입니까
- 28. Win32 어셈블리를 제거하고 WinSxS를 정리하는 방법은 무엇입니까?
- 29. PyOpenAL을 사용할 때 정리하는 올바른 방법은 무엇입니까?
- 30. 제거시 사용자 설정 파일을 정리하는 방법은 무엇입니까?
에는 "BEST"방법은 없습니다. 뭐든지 요. 사실이 경우 나는 목표가 실제로 가치 있다고 생각조차하지 않습니다. –
이것은 현재의 형태로는 대답하기가 너무 모호하며 많은 의견을 제시합니다. 당신이 코드를 유지할 사람에게 의미가 있다고 생각하는 것을하십시오 ... – Nim
당신은 둘 다 유효한 포인트를 가지고 있습니다. – Rhexis