서브메뉴

본문

Advanced C++
Advanced C++
저자 : 제임스 코플리엔
출판사 : 한빛미디어
출판년 : 2003
정가 : 27000, ISBN : 8979142463

책소개


"C++ 언어는 이렇게 써야 한다."라는 주제를 바탕으로 C++ 다운 설계와 구현을 위한 C++ 언어의 스타일과 구문에 대해 알아본다. 설계를 고려하지 않고도 프로그램을 잘 짜왔던 사람도 C++ 언어에서 기대하기 힘들었던 온갖 아이디어, 트릭, 테크닉을 모두 다루는 저자의 순발력에 압도될 것이다. 또한 따로 추가된 연습문제의 힌트와 해답은 스스로 테스트해 볼 수 있는 좋은 기회가 될 것이다.

목차


1. 개요
1.1 C++: 진화하는 언어
1.2 관용구와 함께 복잡성 풀기
1.3 1990년대를 위한 객체
1.4 설계와 언어

2. 자료 추상화와 추상 자료 타입
2.1 클래스
2.2 객체 전환
2.3 생성자와 소멸자
2.4 인라인 함수
2.5 정적 자료 멤버 초기화
2.6 정적 멤버 함수
2.7 영역 지정하기와 const
2.8 전역 객체, 상수, 정적 클래스 멤버 초기화 순서
2.9 클래스 객체 멤버 함수를 위한 const 강제 사용
2.10 멤버 함수에 대한 포인터
2.11 프로그램 구성 규약

3. 구체적 자료 타입
3.1 정규 표준 클래스 폼
3.2 영역 지정과 접근 통제
3.3 오버로딩: 연산자와 함수 의미 재정의
3.4 타입 변환
3.5 참조 횟수: 변수의 '마법 메모리' 사용하기
3.6 연산자 new와 delete
3.7 초기화와 인스턴스화 분리하기

4. 상속
4.1 단순 상속
4.3 생성자와 소멸자
4.4 클래스 포인터 변환
4.5 타입 선택자 필드

5. 객체지향 프로그래밍
5.1 C++ 실행 시간 타입 지원: 가상 함수
5.2 소멸자 상호 작용과 가상 소멸자
5.3 가상 함수와 영역 지정
5.4 순수 가상 함수와 추상 기초 클래스
5.5 봉투와 편지 클래스
5.6 기능자: 객체인 함수
5.7 다중 상속
5.8 상속 표준 폼
큐 반복자 예제
은행 업무 응용 프로그램 클래스

6. 객체지향 설계
6.1 타입과 클래스
6.2 객체지향 설계의 대활약
6.3 객체지향 분석과 영역 분석
6.4 객체와 클래스 관계
6.5 특수 타입, 상속, 전달
6.6 특수 타입, 상속, 독립성에 관한 주요 규칙

7. 재사용과 객체
7.1 모든 유추는 어디서든 무너지기 마련이다
7.2 설계 재사용
7.3 코드 재사용 기법 4가지
7.4 매개변수화된 타입 또는 템플릿
7.5 비공개 상속: 상속이 재사용을 지원하는가
7.6 저장 장소 재사용
7.7 인터페이스 재사용: 변형
7.8 재사용, 상속, 전달
7.9 원시 코드 재사용을 위한 구조적 대안
7.10 재사용과 객체에 대한 일반화

8. Exemplar 프로그래밍
8.1 예제: 고용인 Exemplar
8.2 Exemplar와 일반 생성자: Exemplar 공동체 관용구
8.3 자발적인 일반 생성자
8.4 추상 기초 Exemplar
8.5 프레임 Exemplar 관용구 지향
8.6 기호에 관해 한마디
8.7 Exemplar와 프로그램 관리
Exemplar-Based Simple Parser
Frame-Based Exemplars

9. 기호적 언어 스타일 흉내내기
9.1 점진적 C++ 개발
9.2 기호 표준 폼
9.3 예제: 일반 컬렉션 클래스
9.4 점진적 적재를 위한 코드와 관용구
9.5 가비지 컬렉션
9.6 기초 타입 캡슐화
9.7 기호적 관용구에 의존하는 다중 메소드

10. 동적 다중 상속
10.1 예제: 다중 기술 윈도우 시스템
10.2 주의할 점

11. 시스템 쟁점
11.1 정적 시스템 설계
11.2 동적 시스템 설계

A. C++가 바라본 C
A.1 함수 호출
A.2 함수 매개변수
A.3 함수 원형
A.4 참조에 따른 호출 매개변수
A.5 매개변수를 위한 가변적 변수 숫자
A.6 함수 포인터
A.7 const 타입 변경자
A.8 C 코드와 인터페이스 방안

B. 모양 프로그램: C++

C. 연산자에서 받은 참조 반환값

D. 비트단위 복사가 왜 안 될까
D.1 왜 멤버 대 멤버 복사가 만병통치약이 아닐까

E. 기호적인 도형

F. 블록 구조 프로그래밍
F.1 블록 구조 프로그래밍이란
F.2 조직적 C++ 프로그래밍을 위한 기초 건축 벽돌
F.3 깊이 중첩된 영역을 위한 대안
F.4 구현 시 고려사항
블록 구조 비디오게임 코드

G. C++를 사용한 리눅스와 윈도우에서 클래스 동적 적재
G.1 기본 원리
G.2 dlopen API와 관련한 문제 해결 방법
G.3 예제 소개
G.4. 고급 기법1: '동적 C++ 클래스' 라이브러리
G.5. 고급 기법2: '동적 C++ 클래스' 라이브러리

H-1. 연습문제 힌트
H-2. 연습문제 해답