목차
Day 1. C++ 언어의 개요 ... 20
   STEP 1. C++ 언어의 개념 ... 20
   STEP 2. 프로그램 작성 과정 ... 21
   STEP 3. C++ 프로그램의 기본구조 ... 22
      main() 함수 ... 22
      그룹화 괄호 {} ... 23
      주석문(comment) ... 23
      include〈iostream.h〉 ... 24
      cout 객체 ... 25
      명령문과 세미콜론 ... 25
   STEP 4. C++ 컴파일러의 사용법 ... 26
   연습문제 ... 32
Day 2. C++ 언어의 자료형 ... 34
   STEP 1. 자료형의 개념 ... 34
   STEP 2. 상수와 변수의 개념 ... 35
      상수(constant)의 종류 ... 36
      확장 특수 출력 문자(escape sequence) ... 39
      변수(variable) ... 40
   STEP 3. 정수형 ... 41
   STEP 4. 실수형 ... 44
   STEP 5. 문자형 ... 48
   연습문제 ... 51
Day 3. C++ 언어의 연산자 ... 52
   STEP 1. 연산자의 개념 ... 52
   STEP 2. 산술 연산자 ... 52
   STEP 3. 관계 연산자 ... 53
   STEP 4. 조건 연산자 ... 55
   STEP 5. 논리 연산자 ... 57
   STEP 6. 증감 연산자 ... 60
      선행처리, 후행처리 ... 60
   STEP 7. 대입 연산자 ... 62
   STEP 8. sizeof 연산자 ... 63
   STEP 9. 형변환(캐스트) 연산자 ... 64
   STEP 10. 비트 연산자 ... 67
      비트 단위 쉬프트 연산자 ... 71
   STEP 11. 연산자 우선 순위와 결합 방향 ... 73
   연습문제 ... 75
Day 4. C++ 언어의 제어문 ... 76
   STEP 1. 제어문의 개요 ... 76
   STEP 2. if 문 ... 77
      if else 문 ... 80
      다중 if else 문 ... 81
   STEP 3. switch case 문 ... 82
   STEP 4. for 문 ... 85
      다중 for ... 88
   STEP 5. while 문 ... 92
      난수를 발생하는 함수 random() ... 93
      cin의 삽입 연산자(〈〈)를 이용한 정수값을 입력받기 ... 97
      cin의 삽입 연산자(〈〈)를 이용하여 문자열을 입력받기 ... 98
      cin.get을 이용한 입력 ... 99
   STEP 6. do while 문 ... 100
      while 문을 for 문 처럼 사용한 반복문 ... 101
   STEP 7. 보조 제어문 ... 102
      continue 문 ... 102
break 문 ... 103
      goto 문 ... 104
   연습문제 ... 107
Day 5. C++ 언어의 함수 기본편 ... 110
   STEP 1. 함수의 개요 ... 110
   STEP 2. 함수의 사용 ... 112
      인수가 없는 함수 ... 112
      인수가 있는 함수 ... 114
      return 값이 있는 함수 ... 117
   STEP 3. 함수의 프로토타입(원형 정의 또는 선언) ... 120
   STEP 4. 함수의 오버로딩(Function Overloading) ... 122
   STEP 5. 함수의 디폴트 인수(Default Parameter) ... 124
   STEP 6. 선행처리기 ... 127
      매크로 상수 ... 128
      const상수 ... 130
      매크로 함수 ... 131
      인라인(inline) 함수 ... 136
      include ... 137
   연습문제 ... 140
Day 6. C++ 언어의 심화편 ... 142
   STEP 1. 인수 전달 방법 - Call By Value ... 142
      치환하는 알고리즘 ... 143
      치환 함수 만들기 ... 145
   STEP 2. 포인터 개념 ... 147
      메모리 ... 147
      주소 연산자(&) ... 147
      포인터 변수 ... 149
      포인터를 사용한 간접 지정 ... 151
   STEP 3. 인수 전달 방법 - Call By Address ... 153
      Call By Address의 또 다른 용도 ... 155
   STEP 4. 프로그램 작성 과정 ... 157
   STEP 5. 인수 전달 방법 - Call By Reference ... 158
   STEP 6. 기억 클래스 ... 162
      자동변수(auto) ... 163
      외부변수(extern) ... 165
      지역변수로서의 정적변수(static) ... 168
      전역변수로서의 정적변수(static) ... 170
      레지스터 변수(register) ... 176
   연습문제 ... 177
Day 7. C++ 언어의 배열 ... 178
   STEP 1. 배열의 선언 ... 178
      배열의 원소(Array Element) ... 179
      배열을 for 문과 함께 사용하기 ... 182
   STEP 2. 배열의 사용 예 ... 184
      배열을 사용하여 총합과 평균 구하기 ... 184
      배열을 사용하여 최대값 구하기 ... 185
      배열을 사용하여 정렬하기 ... 187
   STEP 3. 1차원 배열과 포인터 ... 193
      배열의 이름은 포인터 ... 196
   STEP 4. 포인터 연산 ... 198
   STEP 5. 함수의 전달인자로 배열 사용하기 ... 201
   STEP 6. 포인터 변수 선언 시 자료형의 의미 ... 208
   연습문제 ... 211
Day 8. C++ 언어의 2차원 배열 ... 212
   STEP 1. 2차원 배열 ... 212
      2차원 배열의 선언방식 ... 212
      2차원 배열의 초기화 ... 214
      2차원 배열과 이중 for 문 ... 214
   STEP 2. 2차원 배열의 사용 예 ... 216
      두 행렬의 합을 구하기 ... 216
      세 행렬을 나란히 같은 줄에 출력하기 ... 218
      2차원 배열을 사용하여 총합과 평균 구하기 ... 220
   STEP 3. 2차원 배열의 주소값 ... 224
   STEP 4. 2차원 포인터 ... 231
   STEP 5. 2차원 배열과 2차원 포인터 ... 234
   STEP 6. 함수의 전달인자로 2차원 배열을 설정하기 ... 240
      함수의 전달인자로 2차원 배열을 사용하기 ... 242
   연습문제 ... 247
Day 9. 문자열 다루기 ... 248
   STEP 1. 문자열(string) 배열의 선언 ... 248
   STEP 2. 문자열(string) 배열의 사용예 ... 253
      문자열의 길이 구하는 함수 strlen ... 253
      문자열의 길이 구하는 사용자 정의 함수 만들기 ... 256
      문자열을 복사하는 함수 strcpy ... 260
      문자열을 복사하는 사용자 정의 함수 만들기 ... 265
      문자열의 크기를 비교하는 strcmp 함수 ... 268
   연습문제 ... 272
Day 10. 문자열 다루기 2 ... 274
   STEP 1. 문자열 2차원 배열 ... 274
   STEP 2. 문자열 포인터 배열 ... 276
   STEP 3. 가장 큰 문자열 구하기 ... 280
   STEP 4. 문자열 정렬하기 ... 283
   STEP 5. 포인터 배열을 사용하여 문자열 정렬하기 ... 288
   STEP 6. 포인터 변수에 키보드에서 입력된 문자열 저장하기 ... 292
      메모리 할당 함수(malloc) ... 294
      메모리 해제 함수(free) ... 299
   연습문제 ... 303
Day 11. 구조체 다루기 ... 304
   STEP 1. 구조체 선언과 사용법 ... 304
      구조체의 개념 ... 304
      구조체를 사용하는 이유 ... 305
      구조체 선언 방식 ... 306
      구조체 변수 선언 ... 307
      구조체 사용하기 ... 308
   STEP 2. 구조체 변수의 초기화 ... 310
   STEP 3. 구조체를 전달인자로 하는 함수 ... 313
      구조체 단위로 값을 대입하기 ... 313
      구조체를 전달인자로 사용하기(Call By Value) ... 315
      리턴값이 구조체인 함수 ... 317
   연습문제 ... 323
Day 12. 구조체 포인터와 배열 ... 324
   STEP 1. 구조체 포인터 ... 324
   STEP 2. 함수의 전달인자로 구조체 포인터 사용하기(Call By Address) ... 329
   STEP 3. 함수의 전달인자로 레퍼런스 변수 사용하기(Call By Reference) ... 333
   STEP 4. 구조체 배열 ... 336
   STEP 5. 구조체 배열과 포인터 ... 339
   STEP 6. 함수의 전달인자로 구조체 배열 사용하기 ... 343
   연습문제 ... 346
Day 13. 클래스와 객체 ... 348
   STEP 1. 객체지향 프로그래밍 ... 348
   STEP 2. OOP(Object Oriented Programming)의 특징 ... 349
      OOP의 특징 ... 349
   STEP 3. 클래스의 선언(멤버 변수/멤버 함수) ... 351
      액세스 지정자 ... 352
      클래스의 멤버 함수 구현 ... 353
   STEP 4. 객체 선언/멤버 참조 ... 355
      클래스와 객체 ... 355
      클래스 멤버의 접근 방법 ... 357
      클래스 내부에 멤버 함수 정의 ... 359
   STEP 5. 클래스의 액세스 지정자 - private/public ... 361
   연습문제 ... 366
Day 14. 생성자와 소멸자 ... 368
   STEP 1. 초기화의 개념 ... 368
   STEP 2. 객체의 초기화 ... 369
      멤버변수를 public으로 변경하여 초기화하기 ... 370
   STEP 3. 함수로 객체를 초기화하기 ... 371
      생성자란? ... 371
   STEP 4. 디폴트 생성자(Default Constructor) ... 372
   STEP 5. 전달인자를 갖는 생성자 ... 374
   STEP 6. 생성자의 오버로딩 ... 376
   STEP 7. 생성자의 디폴트 값 ... 378
   STEP 8. 생성자의 콜론 초기화 ... 381
   STEP 9. 소멸자(Destructor) ... 383
   연습문제 ... 386
Day 15. 동적 메모리 할당과 소멸자 ... 388
   STEP 1. 스택과 힙 영역 ... 388
   STEP 2. 힙 영역에 배열 선언하기 ... 390
      힙 영역의 메모리 해제하기 ... 393
   STEP 3. 클래스 내에서 메모리 동적 할당 ... 395
   STEP 4. 복사 생성자(Copy Constructor) ... 400
   연습문제 ... 409
Day 16. 추상적인 데이터(스택) ... 410
   STEP 1. 스택 ... 410
   STEP 2. 스택의 알고리즘 ... 412
      생성자 구현하기 ... 413
push() 함수 구현하기 ... 414
pop() 함수 구현하기 ... 415
   STEP 3. 동적 메모리 할당으로 스택 구현하기 ... 417
   연습문제 ... 425
Day 17. 객체 포인터와 this ... 426
   STEP 1. 객체 포인터 선언 ... 426
   STEP 2. 객체내의 멤버변수와 멤버 함수의 구조 ... 429
   STEP 3. 내부 포인터 this 란 ... 432
   연습문제 ... 437
Day 18. 객체 배열 ... 438
   STEP 1. 객체 배열의 선언과 사용하기 ... 438
   STEP 2. 객체 배열과 포인터 ... 441
   STEP 3. 함수의 전달인자로 객체 배열 사용하기 ... 444
   STEP 4. 프랜드(friend) 함수 ... 446
   연습문제 ... 450
Day 19. 정적(static )멤버변수와 프랜드(friend) 함수 ... 452
   STEP 1. 정적 멤버변수(Static Member Variable)란? ... 452
   STEP 2. 일반 멤버변수의 문제점 ... 453
   STEP 3. 전역변수의 문제점 ... 456
   STEP 4. 정적 멤버변수 ... 458
   STEP 5. 정적 멤버변수의 접근을 위한 정적 멤버 함수(Static Member Function) ... 461
   연습문제 ... 465
Day 20. 객체가 전달인자인 함수 ... 466
   STEP 1. 멤버 함수로 두 객체의 합 구하기 ... 466
   STEP 2. 프랜드 함수로 두 객체의 합 구하기 ... 469
   STEP 3. 멤버 함수로 1증가하는 함수 구현하기 ... 472
   STEP 4. 프랜드 함수로 1증가하는 함수 구현하기 ... 475
   연습문제 ... 480
Day 21. 연산자 오버로딩 ... 482
   STEP 1. 연산자 오버로딩이란 ... 482
   STEP 2. 이항 연산자의 오버로딩 ... 484
      멤버 함수로 연산자 이항 오버로딩하기 ... 484
      프랜드 함수로 연산자 이항 오버로딩하기 ... 488
   STEP 3. 연산자의 오버로딩시 주의할 점 ... 490
   STEP 4. 단항 연산자의 오버로딩 ... 492
   연습문제 ... 499
Day 22. 기타 연산자 오버로딩 ... 500
   STEP 1. ostream 객체 ... 500
   STEP 2. 출력을 담당하는 삽입 연산자 '〈〈' ... 503
   STEP 3. 프랜드 함수로 삽입 연산자 '〈〈' 정의하기 ... 505
      삽입 연산자 '〈〈'을 발전시키기 ... 509
   연습문제 ... 516
Day 23. String 클래스 ... 518
   STEP 1. 문자열형 이해하기 ... 518
   STEP 2. 문자열 클래스 설계하기 ... 519
   STEP 3. 문자열 클래스(String Class) ... 520
   STEP 4. 문자열 클래스(String Class)를 발전시키기 ... 527
Day 24. 상속 ... 534
   STEP 1. 상속이란 ... 534
   STEP 2. 기반 클래스와 파생 클래스 만들기 ... 535
      기반 클래스 만들기 ... 536
      파생 클래스 만들기 ... 537
   STEP 3. 기반 클래스에 생성자 정의하기 ... 541
   STEP 4. 기반 클래스의 생성자에 전달인자 보내기 ... 543
      파생 클래스에서 기반 클래스의 생성자 명시적으로 호출하기 ... 546
      생성자, 소멸자 호출의 순서 ... 546
      기반 클래스의 생성자에 인수 전달하기 ... 548
   연습문제 ... 553
Day 25. 가상 함수 ... 556
   STEP 1. 함수의 재생(Overriding Function) ... 556
   STEP 2. 기반 클래스 멤버 함수의 은폐(hidding) ... 560
   STEP 3. 포인터 변수로 멤버 함수 호출하기 ... 563
   STEP 4. 기반 클래스의 포인터에 파생 클래스의 주소 값 대입 ... 566
   STEP 5. 정적 바인딩과 동적 바인딩 ... 572
   STEP 6. 동적 바인딩과 가상 함수 ... 575
   STEP 7. 가상 함수의 동작 원리 ... 578
   STEP 8. 완전 가상 함수와 추상 클래스 ... 581
      추상 클래스 ... 582
   연습문제 ... 584
Day 26. 입출력 스트림 ... 586
   STEP 1. C++의 입력과 출력(I/O) ... 586
   STEP 2. cout 객체가 제공하는 출력방법 ... 587
   STEP 3. cin 객체가 제공하는 입력방법 ... 591
   연습문제 ... 599
Day 27. 파일 출력 - 기본편 ... 600
   STEP 1. 파일 입출력을 위한 개념 접근 ... 600
   STEP 2. 파일 출력의 간단한 예 ... 601
   STEP 3. 파일 입력의 간단한 예 ... 604
      문자 한 개를 get() 함수로 입력받아 파일에 출력하기 ... 608
      입출력 파일의 상태를 알려주는 함수 ... 611
      명령형 라인에서 문자열 입력받기 ... 612
      도스의 type 명령어 만들기 ... 614
   연습문제 ... 617
Day 28. 파일 출력 - 심화편 ... 618
   STEP 1. 이진 파일과 텍스트 파일 ... 618
   STEP 2. 이진 파일로 저장하기 ... 619
      파일 모드 ... 621
      다양한 형태로 파일 열기 ... 622
   STEP 3. 이진 파일로 읽어오기 ... 625
   STEP 4. 순차 파일 ... 627
   STEP 5. 랜덤 파일 ... 629
   STEP 6. 파일 입출력 연산자 오버로딩 ... 632
   연습문제 ... 637
Day 29. 템플릿 ... 638
   STEP 1. 템플릿 ... 638
   STEP 2. 함수의 오버로딩과 템플릿 ... 638
      템플릿 함수 만들기 ... 640
   STEP 3. 템플릿 클래스 ... 641
Day 30. MFC를 이용한 윈도 프로그래밍 ... 646
   STEP 1. 비주얼 C++ 특징 ... 646
      MFC 프로그래밍의 이점 ... 646
      MFC 프로그래밍의 일반적인 작성 단계 ... 647
   STEP 2. 프로젝트 단위로 프로그램 작성하기 ... 649
      클래스명과 파일명 리스트 ... 655
   STEP 3. 실행 파일 작성하기 ... 655
   STEP 4. 프로젝트 단위로 파일 저장 및 열기 ... 657
   STEP 5. WorkSpace(워크스페이스) 창과 Code(코드) 창 ... 658
      WorkSpace(워크스페이스) 창 ... 658
      Code(코드) 창 ... 660
   STEP 6. MFC 애플리케이션의 구성 ... 664
      CWinApp(애플리케이션 클래스) ... 665
   도큐먼트와 뷰의 구조 ... 666
      CDocument 클래스 ... 666
      CView::GetDocument() 멤버 함수 ... 666
   STEP 7. ClassWizard와 메시지 핸들러(MessageHandler) ... 668
      ClassWizard ... 668
      WM_SIZE 윈도 메시지 ... 668
   STEP 8. MFC 프로그램 발전하기 ... 668
      CView 클래스 ... 668
      OnDraw() 함수 ... 669
      CDC 클래스 ... 669
pDC→TextOut(0,0,'This is Visual C++ Program') 함수 ... 669
부록 1. 〈연습 문제 풀이〉정답 ... 676
부록 2. Turbo C++ 3.0 설치방법 ... 737
부록 3. ASCII 코드표 ... 741
찾아보기 ... 745
닫기