목차
저자 서문 ... 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
닫기