목차
저자 서문 = 3
성적표 프로젝트 개발 프로세스 = 4
학습 로드맵 = 8
Part 1 C++를 배우기 위한 준비
1장. C++를 배우기 전에 = 21
01. C++란 = 22
2장. 필자와 친해지기 = 33
01. C++를 공부하는 방법 = 34
Part 2 C++ 사용하기
3장. Hello World - C++ 프로그램은 어떻게 생겼나 = 41
01. Hello World 프로그램 훑어보기 = 42
Exercise 3-1 내 인생 첫 번째 프로그램 = 46
이것만은 알고 갑시다 = 47
4장. 변수 - 정보를 담는 방법 = 49
01. C++에서 정보를 다루는 법 = 50
Vitamin Quiz 음악을 숫자로 보관하는 방법 = 51
Exercise 4-1 변수의 정의 연습 = 57
Exercise 4-2 변수끼리 대입하기 = 59
02. 변수를 사용하는 규칙 = 60
이것만은 알고 갑시다 = 68
5장. 타입 1 - 정보의 종류 = 69
01. C++에서 제공하는 타입 = 70
Exercise 5-1 모든 타입의 크기 확인 = 78
Vitamin Quiz 타입의 범위 계산하기 = 80
Exercise 5-2 문자열과 숫자의 화면 출력 = 86
Vitamin Quiz 값과 해석 = 87
02. 형변환 = 92
Exercise 5-3 문제가 발생하는 형변환 정리 = 97
이것만은 알고 갑시다 = 101
6장. 연산자 - 정보를 가공하는 법 = 103
01. 기본적인 연산자 = 104
Exercise 6-1 연산자를 사용한 입장 제한 = 117
02. 비트 단위 연산 = 118
Exercise 6-2 10진수, 2진수, 16진수 변환 연습 = 120
Vitamin Quiz XOR 연산 = 125
Exercise 6-3 컴퓨터가 되어보자 = 131
03. 연산자 더 잘 알기 = 134
이것만은 알고 갑시다 = 139
7장. 분기와 반복 - 프로그램 흐름을 조절하는 법 = 141
01. 분기 = 142
Exercise 7-1 학점 정하기 = 149
Exercise 7-2 학점별 안내 문구 출력 = 156
Vitamin Quiz Switch/case와 if = 157
02. 반복 = 163
Exercise 7-3 while로 구구단을 외자 = 175
Vitamin Quiz for, while, do while = 178
이것만은 알고 갑시다 = 179
8장. 〈프로젝트〉 성적표 Ver 1 = 181
01. 프로젝트의 소개 = 182
02. 성적표 Ver 1.0 - 메뉴의 구성 = 185
03. 성적표 Ver 1.1 - 세 명의 성적 처리하기 = 189
04. 성적표 Ver 1.2 - 성적표 예쁘게 출력하기 = 194
9장. 배열 - 변수를 여러 개 모아놓은 변수 = 197
01. 배열의 기본 = 198
Exercise 9-1 배열을 사용해서 평균 구하기 = 202
Vitamin Quiz 배열의 전체크기는 어떻게 될까? = 205
02. 배열에서의 문자열 사용 = 210
Exercise 9-2 문자열 뒤집기 = 214
이것만은 알고 갑시다 = 215
10장. 구조체 - 다양한 타입의 정보를 한 곳에 모으는 법 = 217
01. 구조체의 기본 = 218
Exercise 10-1 모든 타입의 멤버를 갖는 구조체 = 220
Vitamin Quiz 틀과 붕어빵은 생활 속에 = 221
Vitamin Quiz 구조체 변수의 덧셈? = 223
Exercise 10-2 만약 세상에 구조체가 없었다면 = 226
이것만은 알고 갑시다 = 229
11장. 포인터 - 정보에 대한 정보 = 231
01. 포인터의 기본 = 232
Exercise 11-1 일부러 틀리기 = 240
Vitamin Quiz void 타입의 포인터 변수의 크기는? = 243
Vitamin Quiz 포인터 변수를 가리키는 포인터 변수 = 247
02. 포인터와 Const = 250
Exercise 11-2 빈칸 채우기 = 254
이것만은 알고 갑시다 = 255
12장. 배열과 구조체와 포인터 - 복합적인 방법으로 정보를 다루는 법 = 257
01. 포인터와 배열 = 258
Vitamin Quiz 변수 i 없이 탐색할 수 없을까? = 265
Exercise 12-1 배열을 가리키는 포인터를 사용해서 배열 탐색하기 = 268
02. 배열과 구조체 = 269
Exercise 12-2 사용자 정보 채우기 = 273
03. 포인터와 구조체 = 274
Vitamin Quiz 연산자 우선 순위 = 275
Exercise 12-3 메모리 상태 확인하기 = 279
이것만은 알고 갑시다 = 280
13장. 복합 타입의 모든 것 - 복합적인 정보 = 283
01. 나머지 복합 타입들 = 284
Exercise 13-1 공용체 특징 이해 = 286
Exercise 13-2 열거체 연습 = 291
Vitamin Quiz 포인터 변수에 대한 레퍼런스 = 294
Exercise 13-3 배열 타입에 대한 별명 = 297
02. 배열, 구조체, 포인터의 나머지 기능 = 298
Exercise 13-4 다차원 배열에 구구단 결과 보관하기 = 304
이것만은 알고 갑시다 = 307
14장. 함수 1 - 관련된 코드를 모아서 담을 수 있는 가방 = 309
01. 함수의 기본 = 310
Exercise 14-1 이름 10번 써 오기 = 316
Exercise 14-2 또 이름 10번 써 오기 = 319
02. 인자의 전달 = 321
Exercise 14-3 중간값 구하기 = 330
Exercise 14-4 코드 분석하기 = 340
Vitamin Quiz 포인터 변수를 사용하는 좋은 습관 = 341
Exercise 14-5 또 중간값 구하기 = 344
Vitamin Quiz 이차원 배열의 전달 = 347
Exercise 14-6 구조체 전달의 문제점 지적하기 = 352
이것만은 알고 갑시다 = 356
15장. 함수 2 - 함수의 모든 것 = 359
01. 함수의 모든 것 = 360
Vitamin Quiz 오버로딩 vs 디폴트 인자 = 368
Exercise 15-1 재귀호출을 이해해보자 = 372
Exercise 15-2 전체 시나리오 이해하기 = 386
이것만은 알고 갑시다 = 387
16장. 동적 메모리 할당 - 보다 자유로운 저장 공간 = 389
01. 동적 메모리 할당의 기본 = 390
Exercise 16-1 상위권 점수만 출력하자 = 398
02. 동적 메모리 할당의 응용 = 405
Exercise 16-2 문자열 이동하기 = 411
이것만은 알고 갑시다 = 415
17장. 문자열 - 문자의 배열 = 417
01. 문자열 사용의 기본 = 418
Exercise 17-1 strlen() 직접 구현하기 = 422
Vitamin Quiz 함수의 인자 분석하기 = 422
Exercise 17-2 욕 판별 함수 작성하기 = 426
Exercise 17-3 욕 판별 함수 개선하기 = 440
02. 문자열의 사용 = 442
Exercise 17-4 절대 경로의 디렉토리 부분만 출력하기 = 451
이것만은 알고 갑시다 = 452
18장. 헤더 파일과 구현 파일 - 여러 개의 소스 파일을 사용하는 법 = 453
01. 헤더 파일과 구현 파일의 사용 = 454
Exercise 18-1 예제 검토 = 469
Exercise 18-2 또 예제 검토 = 474
Vitamin Quiz 같은 이름의 다른 구조체 = 475
Vitamin Quiz 헤더 파일의 중복 포함을 막는 또 다른 방법 = 479
이것만은 알고 갑시다 = 481
19장. 〈프로젝트〉 성적표 Ver 2 = 483
01. 성적표 Ver 2.0 - 구조체와 배열의 사용 = 484
02. 성적표 Ver 2.2 - 함수와 파일로 나누기 = 489
03. 링크드 리스트 = 497
04. 성적표 Ver 2.3 - 링크드 리스트의 사용 = 510
Part 3 C++ 객체지향 프로그래밍
20장. 객체지향 프로그래밍 - 레고 블록 조립하듯이 프로그래밍하는 법 = 517
01. 객체지향 프로그래밍의 시작 = 518
이것만은 알고 갑시다 = 530
21장. 클래스와 객체 - 객체지향 프로그래밍의 기본 = 531
01. 클래스와 객체의 기본 = 532
Exercise 21-1 내 생애 첫 번째 멤버 함수 = 536
Vitamin Quiz 대입 연산자 복습 = 542
Exercise 21-2 당구공 클래스 = 550
Vitamin Quiz 얕은 복사 복습 = 561
Exercise 21-3 당구공 클래스에 접근 권한 설정 = 567
Exercise 21-4 당구공 클래스에 접근자 추가 = 574
Exercise 21-5 당구공 클래스 최적화 = 579
02. 클래스와 객체 자세히 살펴보기 = 585
Exercise 21-6 함수 포인터 연습 = 601
Exercise 21-7 당구공 4개 생성하기 = 606
이것만은 알고 갑시다 = 623
22장. 상속과 포함 - 클래스의 재사용 = 629
01.포함 = 630
Vitamin Quiz 버그 수정 = 635
Exercise 22-1 생성자와 소멸자의 순서 = 638
02.상속 = 639
Vitamin Quiz 객체의 크기 확인하기 = 646
Exercise 22-2 생성자와 소멸자의 순서 = 649
Exercise 22-3 멤버 함수도 확인하자 = 657
이것만은 알고 갑시다 = 663
23장. 다형성과 가상 함수 - 부품간의 조립 = 665
01. 가상 함수를 사용한 다형성의 구현 = 666
Exercise 23-1 다양한 도형 추가 = 676
Vitamin Quiz 다형성 복습 = 681
02. 오버라이딩 = 682
이것만은 알고 갑시다 = 691
24장. 예외 처리 - 프로그램이 갑자기 죽지 않게 하는 법 = 693
01. 예외 처리의 기본 = 694
Vitamin Quiz 먼저 생각해보기 = 700
Exercise 24-1 예외 처리 연습 = 705
Exercise 24-2 함수 실행 과정 확인해보기 = 713
02. 구조적 예외 처리 제대로 사용하기 = 719
Vitamin Quiz 먼저 생각해보기 = 725
Exercise 24-3 auto_ptr 적용 = 728
이것만은 알고 갑시다 = 731
25장. 〈프로젝트〉 성적표 Ver 3 = 735
01. 성적표 Ver 2.4 - 성적표 Ver 2.3의 버그 수정 = 736
02. 성적표 Ver 3.0 ~ 3.2 - 단계적인 클래스화 = 744
03. 성적표 Ver 3.3 - 새로운 학생 클래스 = 752
04. 성적표 Ver 3.4 ~ 3.5 - 다양한 방식의 성적표 출력 = 759
05. 성적표 Ver 3.6 - 예외 처리의 추가 = 776
06. 프로젝트 리뷰 = 787
Part 4 C++ 고급 기능
26장. 접근 범위와 존속 기간 - 변수와 함수 다시 보기 = 791
01. 변수와 함수의 접근 범위와 존속 기간 = 792
Exercise 26-1 존속 기간 확인 = 795
Vitamin Quiz 멤버 함수 안에 정의한 변수는? = 801
Exercise 26-2 또 존속 기간 확인 = 802
이것만은 알고 갑시다 = 807
27장. 타입 2 - 사용자 정의 타입으로서의 클래스 = 809
01. 연산자 오버로딩 = 810
Exercise 27-1 복소수의 뺄셈 = 813
Exercise 27-2 연산자 = 815
Exercise 27-3 일반 함수로 구현한 복소수의 뺄셈 = 817
02. 클래스와 관련된 형변한 = 822
Vitamin Quiz 레퍼런스의 경우는 왜 예외를 던질까? = 827
이것만은 알고 갑시다 = 831
28장. 네임스페이스 - 관련된 코드를 묶어주는 논리적인 가방 = 835
01. 네임스페이스 사용하기 = 836
Exercise 28-1 Using-Declaration = 844
이것만은 알고 갑시다 = 851
29장. 템플릿과 STL - 컴퓨터에게 코딩을 맡기자 = 853
01. 템플릿 = 854
Vitamin Quiz AutoArray〈float〉와 AutoArray〈int〉의 관계는? = 858
Exercise 29-1 main() 함수 만들기 = 860
02. STL = 861
Exercise 29-2 vector 사용하기 = 865
이것만은 알고 갑시다 = 870
30장. 입출력 - 콘솔 창과 파일에 입출력하기 = 871
01. C++ 스타일의 입출력 = 872
Exercise 30-1 진법 변환 = 880
Exercise 30-2 채팅 내용 저장하기 = 884
02. C 스타일의 입출력 = 885
이것만은 알고 갑시다 = 890
Part 5 비주얼 스튜디오 사용하기
31장. 비주얼 스튜디오 닷넷 사용하기 = 893
01. 비주얼 스튜디오 닷넷 사용 방법 = 894
32장. 비주얼 스튜디오 6.0 사용하기 = 907
01. 비주얼 스튜디오 6.0 사용 방법 = 908
부록 = 913
부록 A. C++ 보충 학습 = 914
부록 B. 타입의 범위 = 918
부록 C. 연산자 우선 순위 = 920
부록 D. 아스키 코드 = 922
부록 E. 호환성 노트 = 924
찾아보기 = 926