이미 소장하고 있다면 판매해 보세요.
|
PART 1 C++로 뛰어들기
CHAPTER 1 소개와 개발 환경 설치 프로그래밍 언어란? C와 C++는 어떻게 다를까? C++를 배우려면 C부터 알아야 할까? 프로그래머가 되려면 수학이 필수일까? 용어 소스 파일 편집하기와 컴파일하기 샘플 소스 코드 윈도 매킨토시 리눅스 CHAPTER 2 C++의 기초 C++ 언어 소개 프로그램에 주석 달기 프로그래머처럼 생각하기, 재사용할 수 있는 코드 만들기 고통이자 동시에 기쁨인 실습 스스로 퀴즈 실습 과제 CHAPTER 3 변수로 사용자와 소통하기 변수 소개 변수 제대로 사용하기 문자열 저장하기 OK. 문자열을 받았다. 그렇다면 다른 타입은 왜 필요할까? 스스로 퀴즈 실습 과제 CHAPTER 4 If문 if 의 기본 문법 수식 else문 else-if 문자열 비교 부울 연산자를 사용하여 각종 조건 판단하기 스스로 퀴즈 실습 과제 CHAPTER 5 루프 while 루프 for 루프 do - while 루프 루프의 흐름 제어하기 루프의 중첩 적절한 루프 고르기 스스로 퀴즈 실습 과제 CHAPTER 6 함수 함수의 문법 지역 변수와 전역 변수 함수 사용하기 함수 단위로 프로그램 쪼개기 함수 이름 짓기와 함수 오버로드하기 함수 요약 스스로 퀴즈 실습 과제 CHAPTER 7 switch case와 enum switch case switch case문과 if-else의 비교 열거형을 사용하여 단순 타입 만들기 스스로 퀴즈 실습 과제 CHAPTER 8 프로그램에 임의성 부여하기 C++에서 난수 얻기 버그와 임의성 스스로 퀴즈 실습 과제 CHAPTER 9 어떻게 할지 모를 때는 어떻게 해야 할까? 문제를 잘게 쪼개기 효율성과 보안에 관한 단상 알고리즘을 모르겠다면 어떻게 해야 할까? 실습 과제 PART 2 데이터 다루기 CHAPTER 10 배열 기본적인 배열 문법 배열 사용 예 배열 사용하기 배열 정렬하기 스스로 퀴즈 실습 과제 CHAPTER 11 구조체 여러 값을 하나로 묶기 스스로 퀴즈 실습 과제 CHAPTER 12 포인터 지금까지 알고 있는 것은 버려라! 도대체 포인터가 무엇이고, 왜 신경 써야 할까? 메모리란 무엇일까? 그 밖의 장점(단점 포함) 스스로 퀴즈 실습 과제 CHAPTER 13 포인터 사용하기 포인터 문법 가리키는 대상이 있다는 것: 변수의 주소 가져오기 초기화되지 않은 포인터와 NULL 포인터와 함수 레퍼런스 스스로 퀴즈 실습 과제 CHAPTER 14 동적 메모리 할당 new로 더 많은 메모리 확보하기 포인터와 배열 다차원 배열 포인터 연산 포인터 파헤치기 스스로 퀴즈 실습 과제 CHAPTER 15 연결 리스트 데이터 구조 고급 데이터 구조의 가치 포인터와 구조체 연결 리스트 만들기 연결 리스트 운행하기 연결 리스트 파헤치기 스스로 퀴즈 실습 과제 CHAPTER 16 되부름 되부름을 바라보는 시선 되부름과 데이터 구조 루프와 되부름 스택 되부름 파헤치기 스스로 퀴즈 실습 과제 CHAPTER 17 바이너리 트리 왜 바이너리 트리가 필요할까? 바이너리 트리란? 바이너리 트리 구현하기 바이너리 트리의 실사용처 스스로 퀴즈 실습 과제 CHAPTER 18 표준 템플릿 라이브러리 벡터, 크기를 조절할 수 있는 배열 맵 반복자 STL 파헤치기 STL 심화 학습 스스로 퀴즈 실습 과제 CHAPTER 19 문자열 고급 문자열 읽어 들이기 문자열의 길이 그리고 개별 요소에 접근하기 탐색 및 하위 문자열 레퍼런스에 의한 전달 스스로 퀴즈 실습 과제 CHAPTER 20 Code::Blocks로 디버깅하기 시작하기 버그 때려 잡기 실습 과제 PART 3 큰 프로그램 작성하기 CHAPTER 21 프로그램을 작은 조각으로 쪼개기 C++ 빌드 프로세스 이해하기 프로그램을 여러 파일로 쪼개는 법 스스로 퀴즈 실습 과제 CHAPTER 22 프로그램 디자인의 세계 중복 코드 데이터 저장 방식에 대한 가정 디자인과 주석 스스로 퀴즈 CHAPTER 23 구조적 데이터의 표현 방식 숨기기 함수를 사용하여 구조체의 레이아웃 숨기기 스스로 퀴즈 실습 과제 CHAPTER 24 클래스 데이터 저장 방식 숨기기 클래스의 인스턴스 선언하기 클래스의 책임 정리 스스로 퀴즈 실습 과제 CHAPTER 25 클래스의 수명 주기 객체 생성 객체 파괴 클래스 복사하기 스스로 퀴즈 실습 과제 CHAPTER 26 상속과 다형성 C++의 상속 스스로 퀴즈 실습 과제 CHAPTER 27 네임스페이스 네임스페이스 사용하기 스스로 퀴즈 실습 과제 CHAPTER 28 파일 I/O 파일 I/O 기초 파일 형식 파일의 위치 명령행 인수 받기 바이너리 파일 I/O 스스로 퀴즈 실습 과제 CHAPTER 29 C++ 템플릿 템플릿 함수 템플릿 클래스 템플릿 작업 팁 템플릿 핵심 휘어잡기 스스로 퀴즈 실습 과제 PART 4 그 밖의 주제 CHAPTER 30 iomanip를 사용하여 출력 형식 다듬기 깔끔하게 공백 처리하기 iomanip 다루기 CHAPTER 31 예외와 오류 보고 CHAPTER 32 마무리 스스로 퀴즈 해답 찾아보기 |
|
C++에 대한 관심은 자바나 C# 등의 새로운 언어가 날로 인기를 더하는 상황에서도 전혀 식지 않았다. 내가 운영하는 웹사이트인 Cprogramming.com의 트래픽이 최근 몇 년 사이 급속한 증가 추세를 보인 것만 봐도 이를 알 수 있다. 고성능 애플리케이션을 위한 변함없는 선택의 대상으로서, 자바나 다른 언어보다도 매우 빠른 C++는 하나의 완전한 언어로 입지를 굳게 다져가고 있으며, C++11이라는 새로운 언어 사양에 따라 고성능이라는 기존 강점을 유지하면서도 더 쉽고 빠르게 사용할 수 있는 새로운 기능을 개발자에게 선사하고 있다.
_xvii 컴파일러 오류는 main.cpp 파일을 편집하다 무언가 잘못되어 컴파일러가 이를 제대로 인식하지 못해 일어난 경우다. 무엇이 잘못 되었는지 파악하려면 Build messages 또는 Build log 창을 확인해야 한다. Build messages 창은 컴파일 오류만을 보여주고, Build log 창은 다른 문제도 함께 보여준다. _13 if문 다음에 여러 행에 걸쳐 코드를 작성하려면 해당 코드 전체를 중괄호로 묶어 if문이 참일 때 코드 전체가 하나의 블록으로 실행되도록 해야 한다. 나는 if문의 본체를 중심으로 시작과 끝에 중괄호를 두는 것이 좋다고 생각한다. 그렇게 하면 구문들이 실행될 때 한 덩어리라는 것을 따로 기억할 필요도 없고, 보기에도 깔끔해진다. if문의 본체를 중괄호로 묶지 않고 그대로 코드만 작성하는 실수가 더러 보이는데, 그렇게 하면 두 번째 구문은 if문과 상관없이 늘 실행될 것이다. _61 꽤 타당해 보인다. 하지만 사소한 문제가 하나 있다. 루프가 언제 끝나야 하는지 어떻게 알 수 있을까? 함수의 인수들에는 배열의 크기를 알려주는 정보가 없다. 배열의 크기를 넣어주고, findSmallestRemainingElement 함수를 호출하는 곳에도 배열의 크기를 넣어주어야 한다. 하향식 접근 방법을 사용하고 있으니 원래 코드를 일부 수정하는 것이 좋겠다. 이는 자연스러운 디자인 프로세스로서 부드러운 진행 과정이다. _138 한 번에 행 전체를 읽는 특별한 함수는 바로 getline이다. getline은 ‘입력 스트림’을 받아 이 스트림에서 텍스트 행을 읽어 들인다. 입력 스트림의 예가 바로 한 번에 단어 하나씩 읽기 위해 사용했던 cin이다. (이쯤 해서 지금까지 언급하지 않았던 작은 비밀 한 가지를 누설하고자 한다. cin 메소드는 사실 문자열이나 벡터처럼 객체이고, 그 타입은 입력 스트림이다. 그리고 cin]]은 데이터를 읽어 들이는 메소드다. 이런 내용을 1장부터 다뤘다면 생각만 해도 골치 아프다!) _263 ---p.263 |