게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C++ PROGRAMMING LANGUAGE 4th advise만 발번역
게시물ID : programmer_5246짧은주소 복사하기
작성자 : 황금비
추천 : 5
조회수 : 2254회
댓글수 : 4개
등록시간 : 2014/09/01 19:50:45
유모게시판이라는게 좀 가벼워야 하는데 그렇게 약간의 장난으로 게시물을 올린것이 여기까지 왔네요.

3판은 번역판을 가지고 있지 않아서 영문 pdf로 대충 읽었고 최신 4판도 대충 읽었습니다.

3판의 포인터, 배열 관련 내용이 4판의 7장으로 옮겨 졌구요, 짧게 읽어서 그냥 마지막 advice만 번역할께요.

1. 포인터를 단순하고 복잡하지 않도록 사용할 것
2. 사소하지 않는(복잡한) 포인터 산술 연산은 피할 것.
3. 배열의 경계 밖에 쓰는 것을 주의.
4. 다 차원 배열을 피할 것. 대신 적당한 컨테이너를 정의할 것.
5. 0이나 NULL 대신 nullptr 키워드를 사용할 것.( 3판에서는 NULL을 사용하라고 함)

6. C-Stype의 배열보다 vector, array 컨테이너, 그리고 valarray 과 같은 컨테이너를 사용할 것.
7. NULL 문자로 끝나는 char 형 문자열 대신 std::string을 사용할 것
8. 백슬러쉬의 복잡한 사용을 가진 리터럴 문자열 대신에 "Raw String"을 사용하라.
9. 평범한 참조(reference) 타입에 const 사용을 선호할 것.
10 포워딩과 move semantics 사용해서 rvalue 참조를 사용할 것. &&가 rvalue 참조 선언. move semantics는 데이터를 할당하거나 명령어 등의 의미를 수행하는 것으로 생각됨.

11. 핸들 클래스 안에 소유권을 나타내는 포인터를 유지.
12. void*형은 로우 레벨이 아니면 피하라.
13. const 포인터와 const 참조형을 사용하라.
14. "no object"가 합리적인 선택이라는 것을 제외하고 인수로서 포인터 대신 레퍼런스 타입을 선호하라. 


7장 만 읽어서 전체적인 내용을 말씀 드릴 수 없지만 간단한 소감을 말씀드리면 c++에 있는 문법이나 자료형을 사용하고 웬만하면 c-style을 버려라.
입니다. 

암튼 저자가 그럼 c-style 대신할 c++ 엔 무엇이 있냐?
7장에서는 배열을 대신할 array 컨테이너가 있다. NULL(아직 까지 컴파일러에서 0으로 정의된 것이 많은데 대신) nullptr  키워드가 있다.
백슬러시 많이 들어간 문장은 복잡하니까 Raw String을 줄께.
rvalue 첨이지? 이거 좋아.

이외에 const와 참조자(레퍼런스)를 많이 권하고 있습니다. 

간접적으로 void*형에 관한 내용을 읽으면서 제가 느끼기에 c-style 버리는 것이 핵심인 것 같은데 가장 큰 이유는 제가 추측하기로는 이게 약점이자 강점인데 c언어가 강문법 언어가 아니기 때문입니다. 모호한 문법을 버리는 것이 핵심이고 문법적으로 안전한 c++ 사용을 권하는 것 같습니다.

참고로  rvalue swap 예제르 올려 봅니다.

template<class T>
void swap(T& a, T& b)
{
    T tmp {static_cast<T&&>(a)};
    a = static_cast<T&&>(b);
    b = static_cast<T&&>(tmp);
}

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호