티스토리 뷰
1. C++에 왔으면 C++의 법을 따릅시다
항목 1 : C++를 언어들의 연합체로 바라보는 안목은 필수
- C++를 사용한 효과적인 프로그래밍 규칙은 경우에 따라 달라집니다. 그 경우란, 바로 C++의 어떤 부분을 사용하느냐입니다.
항목 2 : #define을 쓰려거든 const, enum, inline을 떠올리자
- 단순한 상수를 쓸 때는, #define보다 const 객체 혹은 enum을 우선 생각합니다.
- 함수처럼 쓰이는 매크로를 만들려면, #define 매크로보다 인라인 함수를 우선 생각합시다.
항목 3 : 낌새만 보이면 const를 들이대 보자!
- const를 붙여 선언하면 컴파일러가 사용상의 에러를 잡아내는 데 도움을 줍니다. const는 어떤 유효범위에 있는 객체에도 붙을 수 있으며, 함수 매개변수 및 반환 타입에도 붙을 수 있으며, 멤버 함수에도 붙을 수 있습니다.
- 컴파일러 쪽에서 보면 비트수준 상수성을 지켜야 하지만, 여러분은 개념적인(논리적인) 상수성을 사용해서 프로그래밍해야 합니다.
- 상수 멤버 및 비상수 멤버 함수가 기능적으로 서로 똑같게 구현되어 있을 경우에는 코드 중복을 피하는 것이 좋은데, 이때 비상수 버전이 상수 버전을 호출하도록 만드세요.
항목 4 : 객체를 사용하기 전에 반드시 그 객체를 초기화하자
- 기본제공 타입의 개체는 직접 손으로 초기화합니다. 경우에 따라 저절로 되기도 하고 안되기 하기 때문입니다.
- 생성자에서는, 데이터 멤버에 대한 대입문을 생성자 본문 내부에 넣는 방법으로 멤버를 초기화하지 말고 멤버 초기화 리스트를 즐겨 사용합시다. 그리고 초기화 리스트에 데이터 멤버를 나열할 때는 클래스에 각 데이터 멤버가 선언된 순서와 똑같이 나열합시다.
- 여러 번역 단위에 있는 비지역 정적 객체들의 초기화 순서 문제는 피해서 설계해야 합니다. 비지역 정적 객체를 지역 정적 객체로 바꾸면 됩니다.
- James Song
'Books_tech' 카테고리의 다른 글
다시 읽는 <Effective C++> Chapter 3 요약 (0) | 2015.11.04 |
---|---|
다시 읽는 <Effective C++> Chapter 2 요약 (0) | 2015.11.02 |
<Effective Modern C++> Item 2 요약 (0) | 2015.09.04 |
<Effective Modern C++> Item 1 요약 (0) | 2015.08.09 |
선택이 아닌 필수 <지속적인 통합> (0) | 2015.06.06 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
TAG
- #세미나
- #cplusplus
- #클린코드
- #EffectiveModernCpp
- 책
- #프로그래밍심리학
- 객체 지향 설계
- Effective Modern C++
- #제럴드와인버그
- #코드최적화
- #csharp
- #techdays2015
- #ModernCPP
- #uwp
- #scottmeyers
- #팀개발
- #임백준
- #자녀교육
- Scott Meyers
- #스콧마이어스
- #로버트마틴
- #cpp
- Effective C++
- #ndc
- #레거시코드
- #마이클페더스
- #mva
- 상속
- #알고리즘
- #build2016
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함