레거시 C++ 가이드

#2. [레거시 C++ 가이드] 이름 짓기

최대 1 분 소요

밑줄로 시작하지 말고, 이중 밑줄을 사용하지 마라. 헝가리안 표기법을 사용하지 마라. 매크로는 대문자로 작성하라. 이름을 반복하지 마라.

#3. [레거시 C++ 가이드] 기본 타입(자료형)

3 분 소요

타입 크기에 의존하여 코딩하지 마라. OS에 따라, 컴파일러에 따라, 시스템 비트수에 따라 크기가 달라질 수 있다. 대소 비교가 필요한 경우에는 정수 타입을 사용하라. 실수 비교는 오차가 있다.

#5. [레거시 C++ 가이드] 네임스페이스(namespace)

5 분 소요

이름 충돌을 피하기 위해 복잡한 접두어를 쓰지 말고, 네임스페이스를 사용하라. using 선언과 using 지시문 사용시 유효 범위가 커지지 않도록 주의하라.(전역 공간에 using namespace를 사용하면 망한다.)

#8. [레거시 C++ 가이드] 배열(Array)

3 분 소요

속도 성능에 영향이 없다면 유지보수시 확장성을 위하여 배열보다는 vector를 사용하라. 동적 요소 할당을 지원하며, 여전히 엑세스는 빠르다. new[]-delete[] 쌍을 준수하라.

#14. [레거시 C++ 가이드] 초기화

9 분 소요

생성하면서 초기화 하라. 초기화되지 않은 변수를 사용하지 마라. 자동 제로 초기화에 의존하지 마라. 낭패볼 수 있다.

#17. [레거시 C++ 가이드] 문자열

10 분 소요

수정될 필요가 없는 문자열 데이터는 const char* 나 const wchar_t*로 관리하라.(배열이나 string, wstring을 쓰면 복제된다.) 멀티 바이트 문자열은 권장하지 않는다. 사용하지 마라. 소스 코드 저장시에는 다국어 처리에 적합...

#18. [레거시 C++ 가이드] 연산자들(Operators)과 연산자 오버로딩

20 분 소요

임시 개체가 생성되지 않도록 이항 산술 연산자(a = a + b)보다는 산술형 대입 연산자(a += b)를 사용하라. 후위형 증감 연산자는 헷갈리고, 쓸데없는 임시 개체가 생성되니 사용하지 마라. 비교 연산 오버로딩은 <을 활용해서 구현하라.

#19. [레거시 C++ 가이드] 제어문

4 분 소요

코드 분석을 위해 제어의 중첩을 최소화 하라.(조건 상태표를 활용하라.) 예외에 안전할 수 있도록 사전 조건 검사를 수행하라. goto는 코드 분석을 방해하니 사용하지 마라.

#23. [레거시 C++ 가이드] 파일 구성

5 분 소요

헤더 파일에서 다른 헤더 파일을 #include하는 것은 최소화 하라. 선언과 정의 분리, 전방 선언으로 컴파일 종속성을 최소화 하라.