목차
PartⅠ-입문…C와의 비교
제1장/ C++ 입문
1.1 시작 = 14
1.2 비유에 의한 설명 = 14
1.3 Class = 15
1.4 파생클래스 = 23
1.5 가상함수 = 26
1.6 오브젝트 지향 프로그래밍 = 31
제2장/ C와 C++간의 유사점 및 차이점
2.1 시작 = 34
2.2 소스코드 명명법 = 34
2.3 컴파일러 선택 = 35
2.4 프로그램의 작성과 실행 = 35
2.5 Turbo C++ 사용법 = 36
2.6 C++와 C의 유사점 = 37
2.6.1 기본 데이터 = 37
2.6.2 연산자 = 37
2.6.3 식 = 39
2.6.4 제어구조 = 39
2.7 C++와 C의 차이점 = 41
2.7.1 출력 = 41
2.7.2 입력 = 42
2.7.3 함수 = 44
2.7.4 포인터 선언과 간접지정 = 45
2.7.5 구조체와 공용체 = 46
2.7.6 클래스와 파생 클래스 = 47
2.7.7 참조 = 47
2.7.8 생성자, 소멸자, 할당과 해방 = 47
2.8 요약 = 48
제3장/ 토큰과 제어구조에 관한 C++의 기준
3.1 서론 = 54
3.2 토큰 = 54
3.2.1 키워드 = 55
3.2.2 식별자 = 56
3.2.3 데이터형 = 58
3.3 제어구조 = 69
3.4 정리 = 78
제4장/ C++의 기억클래스와 유효범위
4.1 시작 = 80
4.2 자동변수 선언 = 80
4.3 정적변수 선언 = 83
4.4 외부변수 선언 = 85
4.5 레지스터 변수 선언 = 89
4.6 변수의 지속기간 = 90
4.6.1 자유기억영역의 오브젝트 - new 연산자와 delete 연산자 = 90
4.7 정리 = 92
제5장/ C++의 함수
5.1 시작 = 96
5.2 main() = 96
5.3 함수 프로토타입 = 99
5.4 함수정의 = 105
5.4.1 반환값의 형 = 105
5.4.2 함수명과 함수 오버로드 = 107
5.4.3 인수 리스트 = 112
5.5 인라인 함수 = 124
5.6 재귀함수 = 127
5.7 정리 = 128
PartⅡ-C++의 위력
제6장/ C++의 클래스-기본적인 개념
6.1 서론 = 132
6.2 C와 C++에서의 구조체 = 132
6.3 C++에서의 클래스 구조 = 139
6.4 정리 = 150
제7장/ C++ 클래스의 유효범위와 멤버 엑세스
7.1 서론 = 152
7.2 클래스 선언 = 152
7.3 클래스명 유효범위 = 153
7.4 클래스 멤버의 데이터 형 = 158
7.5 클래스 멤버 기억 클래스 지정자 = 161
7.5.1 static 클래스 멤버 = 162
7.6 클래스 멤버 엑세스 지정자 = 164
7.6.1 public 엑세스 = 164
7.6.2 private 엑세스 = 167
7.6.3 protected 엑세스 = 171
7.7 클래스 멤버 함수 = 172
7.8 프랜드 함수 = 172
7.9 Inline 함수 = 177
7.10 정리 = 179
제8장/ 파생 클래스-기본적 개념
8.1 시작 = 182
8.2 간단한 C 에플리케이션 = 183
8.3 C++의 파생 클래스 = 192
8.4 정리 = 200
제9장/ 파생 클래스 멤버의 엑세스 특권
9.1 서론 = 202
9.2 클래스 중의 protected 멤버 = 202
9.3 public 파생 클래스의 엑세스 특권 = 207
9.4 Private 파생 클래스의 엑세스 특권 = 210
9.5 정리 = 217
제10장 생성자(Constructors)와 소멸자(Destructors)
10.1 서론 = 220
10.2 생성자-준비 = 220
10.3 디폴트 생성자 = 222
10.4 파라미터를 갖는 생성자 = 226
10.5 디폴트 인수를 갖는 생성자 = 228
10.6 생성자의 오버 로드 = 229
10.7 생성자의 호출 순서 = 231
10.8 파라미터를 갖는 기본 클래스 생성자 = 236
10.9 소멸자 = 241
10.10 소멸자의 호출 순서 = 243
10.11 정리 = 245
제11장 가상함수와 다태성-기본적 개념
11.1 서론 = 248
11.2 포인터의 복습 = 248
11.3 클래스로의 포인터 = 250
11.4 파생틀래스로의 포인터 = 251
11.5 다시 가상함수 = 256
11.6 그래서 가상함수란? = 263
11.7 Early binding과 Late binding이란? = 264
11.8 정리 = 265
제12장 가상함수와 추상클래스
12.1 준비 = 268
12.2 가상함수의 유연성 = 268
12.3 표준으로부터의 파생 = 274
12.4 순수가상함수와 추상클래스 = 279
12.5 정리 = 283
제13장 포인터와 포인터 연산
13.1 준비
13.2 포인터구문 = 286
13.3 int, float, double 데이터형의 포인터 = 288
13.4 배열로의 포인터 = 292
13.5 구조체로의 포인터 = 295
13.6 포인터의 연산 = 296
13.7 정리 = 301
제14장 연산자의 오버로드-기초적 개념
14.1 준비 = 304
14.2 연산자의 오버로드는 당연하지 않은가? = 304
14.3 연산자의 오버로드-구문 = 307
14.4 연산자 오버로드의 매력 = 314
14.5 오버로드 연산자는 간단한 함수 호출 = 317
14.6 연산자 오버로드의 이점 = 323
14.7 연산자오버로드의 결점 = 324
14.8 정리 = 324
제15장 연산자의 오버로드, this 포인터, 프렌드 함수
15.1 서론 = 328
15.2 2항 및 단항 오버로드 연산자 = 328
15.3 오버로드 연산자의 제한 = 329
15.4 오버로드 연산자의 식구문 = 330
15.5 this 포인터 = 334
15.6 프렌드 함수 = 341
15.7 정리 = 347
제16장 Turbo C++ 프리프로세서 명령
16.1 서론 = 350
16.2 C++ 프리프로세서 = 350
16.3 파일의 include = 352
16.4 단순한 문자열 치환 = 356
16.5 인수 없는 매크로 = 357
16.6 인수 있는 매크로 = 359
16.7 매크로 정의 해제 = 363
16.8 조건 컴파일러 = 364
16.8.1 #if-#else-#endif = 365
16.8.2 #if-#elif-#endif = 367
16.8.3 #ifdef-#endif = 367
16.8.4 #ifndef-#endif = 368
16.9 #pragma = 369
16.10 정리 = 370
PartⅢ-C++에 적용한 오브젝트 지향 접근
제17장 오브젝트 지향 분석
17.1 준비 = 376
17.2 오브젝트 지향 분석이란? = 376
17.2.1 문제의 이해 = 377
17.2.2 오브젝트의 확인 = 378
17.2.3 공통 속성의 확인 = 379
17.2.4 공통 서비스의 확인 = 379
17.2.5 구조의 확인 = 380
17.2.6 오브젝트의 의존성의 확인 = 381
17.2.7 오브젝트 간의 메시지 흐름의 확인 = 381
17.3 정리 = 383
제18장 오브젝트 지향 프로그램 설계
18.1 준비 = 386
18.2 오브젝트 지향 프로그램 설계란? = 386
18.3 간단한 정리 = 386
18.3.1 요구 = 387
18.3.2 오브젝트의 확인 = 387
18.3.3 속성의 확인 = 387
18.3.4 서비스의 확인 = 387
18.4 프로그램 설계 = 388
18.4.1 클래스의 형성 = 388
18.4.2 구조의 확인 = 396
18.4.3 오브젝트의 의존성 확인 = 398
18.4.4 오브젝트간의 메시지 흐름의 확인 = 398
18.4.5 다양성 / 가상함수에 대해서 = 399
18.5 멤버 함수의 정의 = 401
18.6 main() = 404
18.7 정리 = 414
제19장 오브젝트 지향 프로그램의 확장-제1부
19.1 준비 = 416
19.2 modify() 함수 = 416
19.3 존재하지 않는 고객 레코드의 변경 = 424
19.4 멤버가 아닌 클래스 오브젝트에 의한 modify()에의 엑세스 = 429
19.5 정리 = 434
제20장 오브젝트 지향 프로그램의 확장-제2부
20.1 서론 = 436
20.2 delete_info() 함수 = 436
20.3 존재하지 않는 고객 레코드의 삭제 = 442
20.4 클래스 멤버가 아닌 함수에 의한 delete_info() 엑세스 = 449
20.5 정리 = 454
제21장 오브젝트 지향 프로그램의 확장-제3부
21.1 서론 = 456
21.2 add_info() 함수 = 456
21.3 중복된 고객 레코드의 추가 = 464
21.4 멤버가 아닌 클래스 오브젝트에 의한 add_info() 엑세스 = 470
21.5 정리 = 477
제22장 OOP 설계 응용(Ⅰ)-텍스트 윈도우 클래스 설계
22.1 서론 = 480
22.2 클래스 라이브러리의 설계 = 480
22.3 기본 클래스와 파생 클래스 = 481
22.4 윈도우 작성 = 481
22.5 윈도우의 페인트 = 486
22.6 정리 = 494
제23장 OOP 설계 응용(Ⅱ)-텍스트 윈도우 클래스의 확장
23.1 서론 = 496
23.2 클래스 라이브러리의 헤더 파일 = 496
23.3 Foreground색 지정 = 499
23.4 점멸하는 foreground색 = 504
23.5 정리 = 508
제24장 OOP 설계 응용(Ⅲ)-움직이는 공
24.1 준비 = 510
24.2 기본클래스(locate, point, Circle)의 구성 = 510
24.2.1 클래스 선언과 구현 = 511
24.2.2 움직이는 원의 데모 프로그램 = 517
24.3 2개의 공의 충돌 = 519
24.3.1 class ball = 519
24.3.2 공의 충돌 데모 프로그램 = 525
24.4 상자안을 움직이는 공 = 528
24.4.1 경계(Boundary)의 표현 = 528
24.4.2 데모 프로그램 = 534
24.5 선형리스트로 연결된 공 = 536
24.5.1 ball형 오브젝트의 선형리스트 = 537
24.5.2 데모 프로그램 = 542
24.6 경계와 공을 일체화한 클래스 = 544
24.7 정리 = 549
제25장 C++의 I / O 클래스 라이브러리
25.1 준비 = 552
25.2 스트림 = 552
25.3 파일 = 552
25.4 C++의 I / O = 553
25.5 예약 스트림 = 553
25.6 << 연산자 = 554
25.7 출력함수 put()과 flush() = 558
25.8 >> 연산자 = 560
25.9 입력함수 get() = 560
25.10 형식화된 출력 = 561
25.11 파일 입출력 스트림 = 564
25.12 파일의 열기 = 565
25.13 텍스트 파일의 읽기와 쓰기 = 569
25.14 파일의 바이너리 데이터의 읽기와 쓰기 = 570
25.15 EOF의 검출 = 572
25.16 파일 닫기 = 573
25.17 정리 = 575