책 이미지
eBook 미리보기
책 정보
· 제목 : More Effective C++ 
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > C++
· ISBN : 9788956743998
· 쪽수 : 404쪽
· 출판일 : 2007-08-27
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > C++
· ISBN : 9788956743998
· 쪽수 : 404쪽
· 출판일 : 2007-08-27
책 소개
전 세계 C++ 프로그래머의 필독서, <Effective C++>의 저자가 또 다시 프로그래밍과 설계 기술을 향상시켜 주는 35 가지의 새로운 테크닉을 선보인다. 저자는 다년간의 경험에서 뽑아낸 통찰력을 유감 없이 발...
전 세계 C++ 프로그래머의 필독서, <Effective C++>의 저자가 또 다시 '프로그래밍과 설계 기술을 향상시켜 주는' 35 가지의 새로운 테크닉을 선보인다. 저자는 다년간의 경험에서 뽑아낸 통찰력을 유감 없이 발휘하여 더 효과적인(more effective) 소프트웨어를 개발하는 방법을 설명하고 있다.
효과적인 소프트웨어란 더 효율적이고, 더 견고하고, 더 표준적이고, 더 높은 이식성과 재사용성을 갖춘 소프트웨어를 뜻한다. 간단히 말해 저자는 더 멋있게 C++ 프로그래밍을 할 수 있는 방법을 전하고 있다.
More Effective C++는 C++ 프로그래머가 언제든지 사용할 수 있고 실용적이며 뼈 속까지 스며드는 값진 조언으로 쓰여졌다.
More Effective C++에서 다루어진 주요 내용은 다음과 같다. 프로그램 효율(efficiency)을 높이는 입증된 테크닉, 그리고 C++의 주요 기능을 썼을 때에 달라지는 시간적/공간적 비용에 대해 신랄하게 설명한다. 메모리지정 new(placement new), 가상 생성자, 스마트 포인터, 참조 카운팅, 프록시 클래스, 이중 디스패치(double-dispatching) 등의 전문가급 C++ 테크닉에 대해 상세한 해설을 실었다.
구조체 그리고 C++ 클래스와 함수에 대해 예외처리를 적용할 때의 수행 결과를 자세히 보여주는 충실한 예제와 함께 bool. mutable, explicit, namespace, 멤버 템플릿, 표준 템플릿 라이브러리(STL) 등의 새로 도입된 기능에 대한 실제적인 활용 예를 실었다. 아직 최신 기능을 지원하지 않는 C++ 컴파일러를 가진 독자들을 위해, 저자는 이런 기능 없이도 동일한 작업을 할 수 있는 방법까지 마련해 두었다.
효과적인 소프트웨어란 더 효율적이고, 더 견고하고, 더 표준적이고, 더 높은 이식성과 재사용성을 갖춘 소프트웨어를 뜻한다. 간단히 말해 저자는 더 멋있게 C++ 프로그래밍을 할 수 있는 방법을 전하고 있다.
More Effective C++는 C++ 프로그래머가 언제든지 사용할 수 있고 실용적이며 뼈 속까지 스며드는 값진 조언으로 쓰여졌다.
More Effective C++에서 다루어진 주요 내용은 다음과 같다. 프로그램 효율(efficiency)을 높이는 입증된 테크닉, 그리고 C++의 주요 기능을 썼을 때에 달라지는 시간적/공간적 비용에 대해 신랄하게 설명한다. 메모리지정 new(placement new), 가상 생성자, 스마트 포인터, 참조 카운팅, 프록시 클래스, 이중 디스패치(double-dispatching) 등의 전문가급 C++ 테크닉에 대해 상세한 해설을 실었다.
구조체 그리고 C++ 클래스와 함수에 대해 예외처리를 적용할 때의 수행 결과를 자세히 보여주는 충실한 예제와 함께 bool. mutable, explicit, namespace, 멤버 템플릿, 표준 템플릿 라이브러리(STL) 등의 새로 도입된 기능에 대한 실제적인 활용 예를 실었다. 아직 최신 기능을 지원하지 않는 C++ 컴파일러를 가진 독자들을 위해, 저자는 이런 기능 없이도 동일한 작업을 할 수 있는 방법까지 마련해 두었다.
목차
용어 대역표
Chpater 1 기본 개념들
항목 1 :포인터(pointer)와 참조자(reference)를 구분하자
항목 2 : 가능한 C++ 스타일의 캐스트를 즐겨 쓰자
항목 3 : 배열과 다형성은 같은 수준으로 놓고 볼 것이 아니다
항목 4 : 쓸데 없는 기본 생성자는 그냥 두지 말자
Chpater 2 연산자(Operators)
항목 5 : 사용자 정의 타입변환 함수에 대한 주의를 놓지 말자
항목 6 : 증가 및 감소 연산자의 전위(prefix)/후위(postfix) 형태를 반드시 구분하자
항목 7 : &&, ||, 혹은 . 연산자는 오버로딩 대상이 절대로 아니다
항목 8 : new와 delete의 의미를 정확히 구분하고 이해하자
Chpater 3 예외(Exceptions)
항목 9 : 리소스 누수를 피하는 방법의 정공(正攻)은 소멸자이다
항목 10 : 생성자에서는 리소스 누수가 일어나지 않게 하자
항목 11 : 소멸자에서는 예외가 탈출하지 못하게 하자
항목 12 : 예외 발생이 매개변수 전달 혹은 가상 함수 호출과 어떻게 다른지를 이해하자
항목 13 : 발생한 예외는 참조자로 받아내자
항목 14 : 예외 지정(exception specification) 기능은 냉철하게 사용하자
항목 15 : 예외 처리에 드는 비용에 대해 정확히 파악하자
Chpater 4 효율(Efficiency)
항목 16 : 뼛속까지 잊지 말자, 80-20 법칙!
항목 17 : 효율 향상에 있어 지연 평가(lazy evaluation)는 충분히 고려해 볼 만하다
항목 18 : 예상되는 계산 결과를 미리 준비하면 처리비용을 깎을 수 있다
항목 19 : 임시 객체의 원류(原流)를 정확히 이해하자
항목 20 : 반환값 최적화(return value optimization)가 가능하게 하자
항목 21 : 오버로딩은 불필요한 암시적 타입변환을 막는 한 방법이다
항목 22 : 단독 연산자(op) 대신에 =이 붙은 연산자(op=)를 사용하는 것이 좋을 때가 있다
항목 23 : 정 안 되면 다른 라이브러리를 사용하자!
항목 24 : 가상 함수, 다중 상속, 가상 기본 클래스, RTTI에 들어가는 비용을 제대로 파악하자
Chpater 5 유용하고 재미있는 프로그래밍 기법들(Techniques)
항목 25 : 생성자 함수와 비(非)멤버 함수를 가상 함수처럼 만드는 방법
항목 26 : 클래스 인스턴스의 개수를 의도대로 제한하는 방법
항목 27 : 힙(heap)에만 생성되거나 힙에는 만들어지지 않는 특수한 클래스를 만드는 방법
항목 28 : 스마트 포인터(Smart Pointer)
항목 29 : 참조 카운팅(Reference Counting)
항목 30 : 프록시(Proxy) 클래스
항목 31 : 함수를 두 개 이상의 객체(타입)에 대해 가상 함수처럼 동작하도록 만들기
Chpater 6 이외의 이야기들(Miscellany)
항목 32 : 미래 지향적인 프로그래머가 되자
항목 33 : 상속 관계의 말단에 있지 않은 (non-leaf) 클래스는 반드시 추상 클래스로 만들자
항목 34 : 한 프로그램에서 C++와 C를 함께 사용하는 방법을 이해하자
항목 35 : C++ 언어의 최신 표준안과 표준 라이브러리에 대해 익숙해지자
추천하는 읽을거리
auto_ptr 클래스 템플릿의 구현
찾아보기
Chpater 1 기본 개념들
항목 1 :포인터(pointer)와 참조자(reference)를 구분하자
항목 2 : 가능한 C++ 스타일의 캐스트를 즐겨 쓰자
항목 3 : 배열과 다형성은 같은 수준으로 놓고 볼 것이 아니다
항목 4 : 쓸데 없는 기본 생성자는 그냥 두지 말자
Chpater 2 연산자(Operators)
항목 5 : 사용자 정의 타입변환 함수에 대한 주의를 놓지 말자
항목 6 : 증가 및 감소 연산자의 전위(prefix)/후위(postfix) 형태를 반드시 구분하자
항목 7 : &&, ||, 혹은 . 연산자는 오버로딩 대상이 절대로 아니다
항목 8 : new와 delete의 의미를 정확히 구분하고 이해하자
Chpater 3 예외(Exceptions)
항목 9 : 리소스 누수를 피하는 방법의 정공(正攻)은 소멸자이다
항목 10 : 생성자에서는 리소스 누수가 일어나지 않게 하자
항목 11 : 소멸자에서는 예외가 탈출하지 못하게 하자
항목 12 : 예외 발생이 매개변수 전달 혹은 가상 함수 호출과 어떻게 다른지를 이해하자
항목 13 : 발생한 예외는 참조자로 받아내자
항목 14 : 예외 지정(exception specification) 기능은 냉철하게 사용하자
항목 15 : 예외 처리에 드는 비용에 대해 정확히 파악하자
Chpater 4 효율(Efficiency)
항목 16 : 뼛속까지 잊지 말자, 80-20 법칙!
항목 17 : 효율 향상에 있어 지연 평가(lazy evaluation)는 충분히 고려해 볼 만하다
항목 18 : 예상되는 계산 결과를 미리 준비하면 처리비용을 깎을 수 있다
항목 19 : 임시 객체의 원류(原流)를 정확히 이해하자
항목 20 : 반환값 최적화(return value optimization)가 가능하게 하자
항목 21 : 오버로딩은 불필요한 암시적 타입변환을 막는 한 방법이다
항목 22 : 단독 연산자(op) 대신에 =이 붙은 연산자(op=)를 사용하는 것이 좋을 때가 있다
항목 23 : 정 안 되면 다른 라이브러리를 사용하자!
항목 24 : 가상 함수, 다중 상속, 가상 기본 클래스, RTTI에 들어가는 비용을 제대로 파악하자
Chpater 5 유용하고 재미있는 프로그래밍 기법들(Techniques)
항목 25 : 생성자 함수와 비(非)멤버 함수를 가상 함수처럼 만드는 방법
항목 26 : 클래스 인스턴스의 개수를 의도대로 제한하는 방법
항목 27 : 힙(heap)에만 생성되거나 힙에는 만들어지지 않는 특수한 클래스를 만드는 방법
항목 28 : 스마트 포인터(Smart Pointer)
항목 29 : 참조 카운팅(Reference Counting)
항목 30 : 프록시(Proxy) 클래스
항목 31 : 함수를 두 개 이상의 객체(타입)에 대해 가상 함수처럼 동작하도록 만들기
Chpater 6 이외의 이야기들(Miscellany)
항목 32 : 미래 지향적인 프로그래머가 되자
항목 33 : 상속 관계의 말단에 있지 않은 (non-leaf) 클래스는 반드시 추상 클래스로 만들자
항목 34 : 한 프로그램에서 C++와 C를 함께 사용하는 방법을 이해하자
항목 35 : C++ 언어의 최신 표준안과 표준 라이브러리에 대해 익숙해지자
추천하는 읽을거리
auto_ptr 클래스 템플릿의 구현
찾아보기
추천도서
분야의 베스트셀러 >
분야의 신간도서 >




















