C++ 프로그램 작성 방법을 빠르게 배우고 싶은 분을 위해 C++의 가장 유용한 부분을 골라 담았다. 또한 C++의 기반이 되는 C를 배우지 않고도 자연스럽게 C++ 프로그램을 작성할 수 있게 도와준다. 16개 장과 부록 2개를 통해 초중급 프로그래머가 C++를 C++답게 코딩하는 방법을 알려주며, C++ 표준 라이브러리를 이용해 함수, 데이터 구조, 클래스, 상속 등 객체지향 프로그래밍 개념으로 C++ 프로그래밍을 하는 방법을 순서대로 소개한다.
저자 소개
지은이 : 앤드류 쾨니히 (Andrew Koenig) AT&T 섀넌(Shannon) 연구실의 대규모 프로그래밍 연구 분과에서 일했으며 C++ 표준 위원회의 프로젝트 책임자입니다. 30년 이상의 경력이 있는 프로그래머로 C++에 대한 150편 이상의 논문을 발표했고, 세계 각지에서 강연도 했습니다. 지은 책으로 『C Traps and Pitfalls』, 『Ruminations on C++』 등이 있습니다.
지은이 : 바바라 E. 무 (Barbara E. Moo) 소프트웨어 분야에서 20년을 일한 독립 컨설턴트입니다. AT&T에서 15년을 일하면서 C++로 만든 최초의 상용 제품 중 하나를 개발했습니다. 이때 AT&T의 첫 번째 C++ 컴파일러 프로젝트를 관리했으며, 월드넷 인터넷 서비스 사업을 지휘하기도 있습니다. 지은 책으로 『Ruminations on C++』가 있습니다.
옮긴이 : 류태호 한국항공대학교에서 컴퓨터정보공학을 공부하고 기업에서 물류 데이터 분석 업무를 했습니다. 궁금하고 재미있는 일을 찾아 프리랜서로 전향 후 다년간 교육 컨설턴트로 활동했고 현재 번역가로 영역을 넓히고 있습니다.
목 차
CHAPTER 0 C++ 시작하기 __0.1 주석 __0.2 #include __0.3 main 함수 __0.4 중괄호 __0.5 표준 라이브러리를 사용한 출력 __0.6 반환문 __0.7 더 깊이 살펴보기 __0.8 핵심 정리 __연습문제
CHAPTER 1 문자열 사용 __1.1 입력 __1.2 테두리 __1.3 핵심 정리 __연습문제
CHAPTER 2 반복문과 카운팅 __2.1 해결해야 하는 문제 __2.2 전체적인 구조 __2.3 주어진 개수만큼 행 출력하기 __2.4 행 출력하기 __2.5 프로그램 완성하기 __2.6 카운팅 __2.7 핵심 정리 __연습문제
CHAPTER 3 데이터 일괄 처리 __3.1 학생의 최종 점수 계산하기 __3.2 평균값 대신 중앙값 사용하기 __3.3 핵심 정리 __연습문제
CHAPTER 4 프로그램 및 데이터 구조화 __4.1 연산 구조화 __4.2 데이터 구조화 __4.3 프로그램 통합하기 __4.4 성적 산출 프로그램 분할하기 __4.5 수정된 성적 산출 프로그램 __4.6 핵심 정리 __연습문제
CHAPTER 5 순차 컨테이너와 문자열 분석 __5.1 학생 분류 __5.2 반복자 __5.3 인덱스 대신 반복자 사용하기 __5.4 더 나은 성능을 위한 데이터 구조 __5.5 리스트 타입 __5.6 문자열 분할 __5.7 split 함수 테스트 __5.8 문자열 결합 __5.9 핵심 정리 __연습문제
CHAPTER 6 라이브러리 알고리즘 __6.1 문자열 분석 __6.2 성적 산출 방식 비교 __6.3 학생 분류 다시 살펴보기 __6.4 알고리즘, 컨테이너, 반복자 __6.5 핵심 정리 __연습문제
CHAPTER 7 연관 컨테이너 __7.1 효율적인 탐색을 위한 컨테이너 __7.2 단어의 빈도 __7.3 상호 참조 테이블 __7.4 문장 만들기 __7.5 성능에 대한 참고 사항 __7.6 핵심 정리 __연습문제
CHAPTER 8 제네릭 함수 __8.1 제네릭 함수 __8.2 데이터 구조 독립성 __8.3 입력 및 출력 반복자 __8.4 융통성을 위한 반복자 사용 __8.5 핵심 정리 __연습문제
CHAPTER 9 새로운 타입 정의 __9.1 Student_info 다시 살펴보기 __9.2 클래스 타입 __9.3 보호 레이블 __9.4 Student_info 클래스 __9.5 생성자 __9.6 Student_info 클래스 사용하기 __9.7 핵심 정리 __연습문제
CHAPTER 10 메모리 관리 및 저수준 데이터 구조 __10.1 포인터와 배열 __10.2 문자열 리터럴 다시 살펴보기 __10.3 문자 포인터 배열의 초기화 __10.4 main 함수의 인수 __10.5 파일 읽기 및 쓰기 __10.6 메모리 관리 __10.7 핵심 정리 __연습문제
CHAPTER 11 추상 데이터 타입 __11.1 Vec 클래스 __11.2 Vec 클래스 구현하기 __11.3 복사 제어 __11.4 동적인 Vec __11.5 유연한 메모리 관리 __11.6 핵심 정리 __연습문제 CHAPTER 12 값처럼 동작하는 클래스 객체 __12.1 간단한 문자열 클래스 __12.2 자동 변환 __12.3 Str 연산 __12.4 주의해야 할 변환 __12.5 변환 연산자 __12.6 변환 및 메모리 관리 __12.7 핵심 정리 __연습문제
CHAPTER 13 상속과 동적 바인딩 __13.1 상속 __13.2 다형성과 가상 함수 __13.3 상속을 사용하여 문제 해결하기 __13.4 핸들 클래스 __13.5 핸들 클래스 사용하기 __13.6 미묘한 사항들 __13.7 핵심 정리 __연습문제
CHAPTER 14 메모리 관리 자동화 __14.1 핸들 클래스 __14.2 참조 카운트 __14.3 데이터 공유를 결정할 수 있는 핸들 클래스 __14.4 Ptr 핸들 클래스 개선하기 __14.5 핵심 정리 __연습문제
CHAPTER 15 문자 그림 다시 살펴보기 __15.1 설계 __15.2 구현 __15.3 핵심 정리 __연습문제
CHAPTER 16 앞으로 나아갈 방향 __16.1 추상화 사용하기 __16.2 다음 학습 단계 __연습문제
APPENDIX A C++ 세부 사항 __A.1 선언문 __A.2 타입 __A.3 표현식 __A.4 실행문 APPENDIX B 라이브러리 요약 __B.1 입출력 __B.2 컨테이너와 반복자 __B.3 알고리즘
출판사 서평
라이브러리 중심으로 배우는 C++ 핵심 이 책은 C++ 프로그램 작성 방법을 빠르게 배우고 싶은 분을 위해 C++의 가장 유용한 부분을 골라 담았습니다. 또한 C++의 기반이 되는 C를 배우지 않고도 자연스럽게 C++ 프로그램을 작성할 수 있게 합니다.
일반적으로 C++ 입문서는 문법을 다룹니다. 하지만 이 책은 문법뿐만 아니라 좋은 예제로 생산성 높은 프로그래밍 방법을 알려줍니다. 더 자연스럽고 효과적으로 C++를 배우고 다루기를 원하는 사람을 진정한 C++ 프로그래밍의 세계로 안내합니다.
숙련된 C++ 프로그래머로 가는 길잡이 C++는 기존 C에서 좀 더 발전한 프로그래밍 언어입니다. 하지만 C를 처음 배웠던 사람은 자칫 C++에서 제시하는 프로그래밍 방법이 아닌 C 프로그래밍을 하던 습관대로 프로그램을 만들려고 할지도 모릅니다.
이 책은 16개 장과 부록 2개를 통해 초중급 프로그래머가 C++를 C++답게 코딩하는 방법을 제대로 알려줍니다. C++ 표준 라이브러리를 이용해 함수, 데이터 구조, 클래스, 상속 등 객체지향 프로그래밍 개념으로 C++ 프로그래밍을 하는 방법을 순서대로 소개합니다.
또한 특정 문제를 해결하는 프로그램을 작성하는 과정 각각에 도움이 되는 C++ 및 표준 라이브러리의 기능을 소개하는 독특한 방식을 취합니다. 단순한 문법 파악이 아닌 프로그래밍하는 원리를 알 수 있는 학습 구조로 이루어져 있습니다. 프로그래밍 언어를 한 번이라도 학습한 적 있는 분, STL을 사용하여 C++ 프로그래밍의 속도를 높이고 싶은 분이라면 이 책으로 C++ 프로그래밍을 제대로 배우기 바랍니다.
★ 이 책의 특징 1. 핵심 개념을 적용하면서 발전시키는 학생 성적 관리 프로그램 만들기 이 책은 학생 성적 관리 프로그램을 만들고 이를 C++ 개념으로 발전시켜나가는 과정으로 C++ 프로그래밍을 제대로 이해할 수 있도록 도와줍니다. 처음에 만든 학생 성적 관리 프로그램을 C++와 객체지향 프로그래밍 방식으로 수정하다 보면 C++ 프로그래밍이 무엇인지 자연스럽게 알 수 있습니다.
2. 핵심 정리로 배운 내용 다지기 각 장의 끝에는 해당 장에서 배운 내용을 정리하는 핵심 정리가 있습니다. 배운 내용을 확실하게 내 것으로 만들고 싶다면 핵심 정리를 꼭 살펴보기 바랍니다. 또한 이 책을 읽은 후 해당 개념을 다시 기억하고 싶을 때라면 핵심 정리를 가장 먼저 펼쳐보세요.
3. 연습문제를 풀면서 다지는 응용 기술 습득 해당 장과 연계된 내용을 다양한 방식으로 응용해 프로그래밍할 수 있는 연습문제를 수록했습니다. 쉬운 문제부터 어려운 문제까지 차례로 해결하다 보면 C++ 프로그래밍에 자연스레 익숙해질 수 있습니다.
★ 대상 독자 - C 혹은 C++ 프로그래밍을 접한 적이 있는 C++ 초급 프로그래머 - 다른 프로그래밍 언어를 배운 상태에서 C++를 배우려는 개발자