목차
머리말 ... 3
인터넷 강의 안내 ... 8
Part 1. C++로의 전환 ... 16
   1장 C 기반의 C++ 1 ... 17
      1-1. printf와 scanf를 대신하는 입ㆍ출력 방식 ... 19
      1-2. 함수 오버로딩(Function Overloading) ... 28
      1-3. 디폴트(Default) 매개 변수 ... 34
      1-4. 인-라인(in-line) 함수 ... 38
      1-5. 이름공간(namespace)에 대한 소개 ... 40
      1-6. 연습문제 정답 및 해설 ... 50
      1-7. OOP 프로젝트 1단계 ... 54
   2장 C 기반의 C++ 2 ... 59
      2-1. 들어가기에 앞서서 ... 61
      2-2. 새로운 형태의 자료형 bool ... 62
      2-3. 레퍼런스(Reference)의 이해 ... 65
      2-4. 레퍼런스와 함수 ... 71
      2-5. 레퍼런스를 이용한 성능의 향상 ... 74
      2-6. 레퍼런스를 리턴하는 함수의 정의 ... 78
      2-7. new & delete ... 83
Part 2. 객체지향의 도입 ... 90
   3장 클래스의 기본 ... 91
      3-1. 구조체와 클래스 ... 93
      3-2. 클래스와 객체 ... 103
      3-3. 클래스 멤버의 접근 제어 ... 106
      3-4. 멤버 함수의 외부 정의 ... 110
      3-5. 연습문제 정답 및 해설 ... 115
   4장 클래스의 완성 ... 119
      4-1. 정보 은닉(Information Hiding) ... 121
      4-2. 캡슐화(Encapsulation) ... 127
      4-3. 생성자(Constructor)와 소멸자(Destructor) ... 134
      4-4. 클래스와 배열 ... 158
      4-5. this 포인터 ... 163
      4-6. friend 선언 ... 167
      4-7. 연습문제 정답 및 해설 ... 171
      4-8. OOP 프로젝트 2단계 ... 175
   5장 복사 생성자 ... 181
      5-1. C++ & C 스타일 초기화 ... 183
      5-2. 복사 생성자의 형태 ... 186
      5-3. 디폴트 복사 생성자 ... 187
      5-4. 깊은 복사(Deep Copy)를 하는 복사 생성자 ... 190
      5-5. 복사 생성자가 호출되는 시점 ... 197
      5-6. 연습문제 정답 및 해설 ... 206
      5-7. OOP 프로젝트 3단계 ... 208
   6장 static 멤버와 const 멤버 ... 211
      6-1. 클래스와 const ... 213
      6-2. 클래스와 static ... 224
      6-3. 그 이외의 키워드: explicit & mutable ... 234
      6-4. OOP 프로젝트 4단계 ... 236
Part 3. 객체지향의 전개 ... 238
   7장 상속(Inheritance)의 이해 ... 239
      7-1. 상속으로 들어가기에 앞서서 ... 241
      7-2. 상속의 기본 개념 ... 242
      7-3. 상속하는 클래스의 객체 생성 및 소멸 과정 ... 250
      7-4. protected 멤버 ... 259
      7-5. 세 가지 형태의 상속 ... 264
      7-6. 상속을 하는 이유 ... 267
      7-7. 연습문제 정답 및 해설 ... 271
      7-8. OOP 프로젝트 5단계 ... 274
   8장 상속과 다형성 ... 281
      8-1. 상속의 조건 ... 283
      8-2. 상속된 객체와 포인터의 관계 ... 292
      8-3. 상속된 객체와 참조의 관계 ... 304
      8-4. Static Binding & Dynamic Binding ... 306
      8-5. "Employee Problem" 완전 해결 ... 318
      8-6. virtual 소멸자의 필요성 ... 322
      8-7. 연습문제 정답 및 해설 ... 326
      8-8. OOP 프로젝트 6단계 ... 330
   9장 virtual의 원리와 다중 상속 ... 337
      9-1. 클래스의 멤버 함수는 사실 어디에 ... 339
      9-2. 가상 함수가 동작하는 원리 ... 343
      9-3. 다중 상속에 대한 이해 ... 346
      9-4. 다중 상속의 모호성 ... 348
      9-5. Virtual Base 클래스 ... 350
      9-6. OOP 프로젝트 7단계 ... 352
      Part 4. 객체지향의 완성 ... 362
   10장 연산자 오버로딩 ... 363
      10-1. 연산자를 오버로딩한다는 것은 어떤 의미인가? ... 365
      10-2. 연산자를 오버로딩하는 두 가지 방법 ... 369
      10-3. 단항 연산자의 오버로딩 ... 380
      10-4. 교환 법칙 해결하기 ... 387
      10-5. cout, cin 그리고 endl의 비밀 ... 393
      10-6. 배열의 인덱스 연산자 오버로딩의 예 ... 400
      10-7. 반드시 해야만 하는 대입 연산자의 오버로딩 ... 405
      10-8. 연습문제 정답 및 해설 ... 412
      10-9. OOP 프로젝트 8단계 ... 415
   11장 string 클래스 디자인 ... 427
      11-1. C++ 표준 라이브러리 ... 429
      11-2. 표준 string 클래스 ... 430
      11-3. 사용자 정의 string 클래스 ... 433
      11-4. OOP 프로젝트 9단계 ... 439
   12장 탬플릿(Template) ... 447
      12-1. 템플릿(template)에 대한 이해 ... 449
      12-2. 함수 템플릿 ... 452
      12-3. 클래스 템플릿 ... 456
      12-4. 템플릿의 원리 이해 ... 467
      12-5. 연습문제 정답 및 해설 ... 470
      12-6. OOP 프로젝트 10단계 ... 472
   13장 예외 처리(Exception Handling) ... 477
      13-1. 기존의 예외 처리 방식 ... 479
      13-2. C++의 예외 처리 메커니즘 ... 482
      13-3. Stack Unwinding(스택 풀기) ... 488
      13-4. 예외 상황을 나타내는 클래스의 설계 ... 501
      13-5. 예외를 나타내는 클래스와 상속 ... 502
      13-6. new 연산자에 의해 전달되는 예외 ... 508
      13-7. 예외 처리에 대한 나머지 문법 요소 ... 509
      13-8. OOP 프로젝트 11단계 ... 511
닫기