책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > C++
· ISBN : 9788968480386
· 쪽수 : 848쪽
· 출판일 : 2013-10-01
책 소개
목차
[1권 목차]
1부: 전문가를 위한 C++ 개요
1장. C++ 부딪혀 보기
1.1. C++ 언어의 기초
1.1. C++ 언어 심화 탐구
1.2. 객체지향 언어로서의 C++
1.3. 표준 라이브러리
1.4. 첫 C++ 프로젝트
1.5. 요약
2장. 전문가를 위한 C++ 프로그램 디자인
2.1. 프로그램 디자인이란?
2.2. 프로그램 디자인의 중요성
2.3. C++ 디자인의 특징
2.4. C++ 디자인의 두 가지 원칙
2.5. 코드의 재사용
2.6. 패턴/테크닉을 이용한 디자인
2.7. 체스 프로그램 디자인하기
2.8. 요약
3장. 객체를 이용한 디자인
3.1. 절차적 사고방식이란 무엇인가?
3.2. 객체지향 철학
3.3. 객체 세상에서 생각하기
3.4. 객체간 관계
3.5. 추상화
3.6. 요약
4장. 재사용성을 높이는 디자인
4.1. 재사용 철학
4.2. 재사용성 높은 코드를 디자인하는 방법
4.3. 요약
5장. 코딩 스타일
5.1. 보기 좋은 코드의 중요성
5.2. 코드의 문서화
5.3. 코드 분할(decomposition)
5.4. 네이밍
5.5. 스타일이 있는 언어의 활용
5.6. 포맷팅
5.7. 스타일 적용의 장애물
5.8. 요약
2부 전문가다운 코딩 방법
6장. 클래스와 객체에 능숙해지기
6.1. 스프레드시트 실습
6.2. 클래스 만들기
6.3. 객체의 라이프 사이클
6.4. 요약
7장. 클래스와 객체 마스터하기
7.1. 동적 메모리 할당을 통한 객체 생성
7.2. 여러 종류의 데이터 멤버 변수
7.3. 메서드의 종류
7.4. 중첩된 클래스
7.5. 클래스 종속 나열형 데이터 타입
7.6. friend 속성
7.7. 오퍼레이터 오버라이딩
7.8. 안정된 인터페이스 만들기
7.9. 요약
8장. 클래스 상속 활용 테크닉
8.1. 상속을 통한 클래스 생성
8.2. 코드 재사용을 위한 상속
8.3. "부모를 존중하라"
8.4. 다형성을 위한 상속
8.5. 다중 상속
8.6. 상속과 관련된 미묘한 문제들
8.7. 요약
9장. C++의 까다롭고 유별난 부분들
9.1. 참조형 타입
9.2. 키워드 혼동
9.3. 타입과 캐스팅
9.4. C++11 C++11
9.5. 헤더 파일
9.6. C 유틸리티
9.7. 요약
10장. 에러 처리
10.1. 에러와 익셉션
10.2. 익셉션의 동작 구조
10.3. 익셉션과 다형성
10.4. 스택 되돌림과 리소스 해제
10.5. 흔한 에러 처리관련 문제
10.6. 요약
11장. C++ 표준 라이브러리 살펴보기
11.1. 코딩 원칙
11.2. C++ 표준 라이브러리 개괄
11.3. 요약
12장. 컨테이너와 반복자의 이해
12.1. 컨테이너 개괄
12.2. 순차 컨테이너
12.3. 컨테이너 어댑터
12.4. 연관 컨테이너
12.5. C++11 비순차 연관 컨테이너 - 해시 테이블
12.6. 기타 컨테이너
12.7. 요약
13장. STL 알고리즘 마스터하기
13.1. 알고리즘 개괄
13.2. C++11 람다 표현식
13.3. 함수 객체
13.4. STL 알고리즘 심화 탐구
13.5. 알고리즘 예제: 선거인 명부 검사
13.6. 요약
14장. STRING과 정규 표현식
14.1. 동적 문자열
14.2. 로컬라이제이션(localization: 다국어 지원)
14.3. C++11 정규 표현식
14.4. 요약
15장. C++ I/O 이해하기
15.1. 스트림의 사용
15.2. 요약
16장. C++11 유틸리티 라이브러리
16.1. std::function
16.2. 분수(ratios)
16.3. duration
16.4. 튜플(TUPLE)
16.5. 요약
17장. STL의 커스터마이징과 확장
17.1. 할당자
17.2. 반복자 어댑터
17.3. STL 확장하기
17.4. 요약
[2권 목차]
3부: C++ 고급 기능 마스터하기
18장. C++ 연산자 오버로딩
18.1. 연산자 오버로딩 개괄
18.2. 산술 연산자의 오버로딩
18.3. 비트 연산자, 논리 연산자의 오버로딩
18.4. 입출력 연산자(insertion/extraction operator)의 오버로딩
18.5. 서브스크립팅 연산자(subscripting operator)의 오버로딩
18.6. 함수 호출 연산자의 오버로딩
18.7. 역참조 연산자의 오버로딩
18.8. 변환 연산자 만들기
18.9. 메모리 할당/해제 연산자의 오버로딩
18.10. 요약
19장. 템플릿을 이용한 제네릭 코드의 작성
19.1. 템플릿 개괄
19.2. 템플릿 클래스
19.3. 함수 템플릿
19.4. 요약
20장. 고급 템플릿
20.1. 템플릿 파라미터 심화탐구
20.2. 템플릿 클래스의 부분 특수화
20.3. 오버로딩을 이용해 템플릿 함수의 부분 특수화 흉내내기
20.4. 재귀 템플릿
20.5. C++11 타입 추론
20.6. C++11 가변 인자 템플릿
20.7. 메타프로그래밍
20.8. 요약
21장. 효과적인 메모리 관리
21.1. 동적 메모리의 활용
21.2. 저수준 메모리 동작 메커니즘
21.3. 요약
22장. C++11 C++ 멀티스레드 프로그래밍
22.1. C++ 스레딩 라이브러리 소개
22.2. 아토믹 작업 라이브러리
22.3. 스레드
22.4. 멀티스레드 Logger 클래스 예제
22.5. 스레드 풀(Thread Pool)
22.6. 스레딩 디자인 요령
22.7. 요약
4부: C++ 소프트웨어 엔지니어링
23장. 여러 가지 소프트웨어 엔지니어링 방법론
23.1. 절차의 필요성
23.2. 소프트웨어 생명 주기(Life Cycle) 모델
23.3. 소프트웨어 엔지니어링 방법론
23.4. 나만의 개발 절차와 방법론 만들기
23.5. 소스 코드 관리
23.6. 요약
24장. 효율적인 C++ 코드 작성
24.1. 성능과 효율 개괄
24.2. 언어 수준 효율성
24.3. 디자인 수준 효율성
24.4. 프로파일링(Profiling)
24.5. 요약
25장. 크로스 플랫폼, 다중 언어 애플리케이션 개발
25.1. 크로스 플랫폼 개발
25.2. 복수의 언어를 이용한 개발(Cross Language Development)
25.3. 요약
26장. 테스트에 익숙해지기
26.1. 품질관리
26.2. 상위 수준 테스트
26.3. 효과적인 테스트 요령
26.4. 요약
27장. 디버깅 완전정복
27.1. 디버깅의 기본 원칙
27.2. 버그의 분류
27.3. 버그 방지
27.4. 버그 대응 계획
27.5. 디버깅 테크닉
27.6. 요약
28장. 디자인 테크닉과 프레임워크의 활용
28.1. "그 문법이 어떻게 됐었지? ..."
28.2. 항상 더 나은 방법이 있다.
28.3. 객체지향 프레임워크
28.4. 요약
29장. 디자인 패턴의 적용
29.1. 반복자 패턴(Iterator Pattern)
29.2. 싱글톤 패턴(Singleton pattern)
29.3. 팩토리 패턴(Factory Pattern)
29.4. 프록시 패턴(Proxy Pattern)
29.5. 어댑터 패턴(Adapter Pattern)
29.6. 데코레이터 패턴(Decorator Pattern)
29.7. 옵져버 패턴(Observer Pattern)
29.8. 요약
부록 A: C++ 인터뷰
부록 B. 참고 문헌