책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > C++
· ISBN : 9788960774025
· 쪽수 : 620쪽
책 소개
목차
1장 첫 번째 C++ 프로그램
___프로그래머처럼 생각하기
______컴퓨터는 시키는 대로만 한다
______프로그램에게 무엇을 시킬지 결정하기
______동등한 C++ 명령문 작성
______칼럼: 컴퓨터는 정말 얼마나 '똑똑'한가, 진짜?
______몇 가지 바보 같은 정의 - 리뷰
___C++는 무엇이 다른가?
___C++ 프로그램 작성
______프로그램 명령문 입력
______프로그램 빌드(컴파일과 링크)
______프로그램 테스트
______필요한 만큼 수정
___자신만의 C++ 컴파일러 설치
______예제 1.1 메시지 출력
______Dev-C++ 환경을 사용할 경우
______마이크로소프트 사의 비주얼 스튜디오를 사용할 경우
______동작 방법
______연습문제
______칼럼: #include와 using이 무엇인가?
___다음 출력 행으로 줄 바꿈
______예제 1.2 여러 줄 출력
______동작 방법
______연습문제
______칼럼: 문자열이란 무엇인가?
___데이터 저장하기: C++ 변수
___데이터형 소개
______칼럼: 왜 한 배가 아니라 두 배인가?
______예제 1.3 기온 변환
______동작 방법
______프로그램 최적화
______연습문제
___변수 이름과 키워드에 관한 몇 가지
______연습문제
___정리
2장 결정, 결정
___데이터형에 대한 몇 가지 더
___프로그램에서의 결정
______칼럼: 인공 지능(AI, artificial interlligence)이란 무엇인가?
______if와 if-else
______칼럼: 왜 두 연산자(= 와 ==)를 사용하는가?
______예제 2.1 홀수 혹은 짝수?
______동작 방법
______코드 최적화
______연습문제
___루프 소개
______칼럼: 무한 루프
______예제 2.2 1에서부터 N까지 출력
______동작 방법
______프로그램 최적화
______연습문제
___C++에서 참 혹은 거짓
______칼럼: 불리언 데이터형
___증가 연산자(++)
___명령문과 표현식
___불리언(지름길) 논리 소개
______칼럼: 무엇이 '참'인가?
______예제 2.3 나이 검사
______동작 방법
______연습문제
___수학 라이브러리 소개
______예제 2.4 소수 검사
______동작 방법
______프로그램 최적화
______연습문제
______예제 2.5 빼기 게임(NIM)
______동작 방법
______연습문제
___정리
3장 간편한 다용도 'for' 명령문
___카운트를 위한 루프
___'for' 루프 소개
___수많은 예제
______칼럼: 'for'는 항상 'while'처럼 동작하는가?
______예제 3.1 'for'를 사용해 1에서부터 N까지 출력
______동작 방법
______연습문제
___for에서 복합 명령문(블록) 사용
___즉석에서 루프 변수 선언
______예제 3.2 'for'를 사용한 소수 검사
______동작 방법
______연습문제
___비교 언어 101: 베이직의 'For'명령문
___정리
4장 함수: 많은 것을 호출
___함수의 개념
___함수 사용의 기본
______단계 1: 함수 선언(프로토타입)
______단계 2: 함수 정의
______단계 3: 함수 호출
______예제 4.1 avg() 함수
______동작 방법
______함수가 함수를 호출!
______연습문제
______예제 4.2 소수 함수
______동작 방법
______연습문제
___지역 변수와 전역 변수
______칼럼: 왜 전역 변수를 사용할까?
___재귀 함수
______예제 4.3 인수 분해
______동작 방법
______칼럼: 수학쟁이를 위한 칼럼
______연습문제
______예제 4.4 최대 공약수를 구하는 유클리드의 알고리즘
______동작 방법
______칼럼: 유클리드가 누구지?
______연습문제
______칼럼: 수학쟁이를 위한 칼럼: 증명의 나머지 부분
______예제 4.5 아름다운 재귀, 하노이의 탑
______동작 방법
______연습문제
______예제 4.6 난수 생성기
______동작 방법
______연습문제
___게임과 추가 게임
___정리
5장 배열: 모두 한 줄에
___C++ 배열 들여다보기
___배열 초기화
___0으로 시작하는 인덱스
______칼럼: 왜 0으로 시작하는 인덱스를 쓰는가?
______예제 5.1 요소 출력
______동작 방법
______연습문제
______예제 5.2 난수는 얼마나 무작위일까?
______동작 방법
______연습문제
___문자열과 문자열의 배열
______예제 5.3 첫 번째 카드 돌리기
______동작 방법
______연습문제
______두 번째 카드 돌리기
______동작 방법
______연습문제
______예제 5.5 세 번째 카드 돌리기
______동작 방법
______프로그램 최적화
______연습문제
___지혜로운 한마디
___2차원 배열: 행렬로 한 걸음
___정리
6장 포인터: 데이터를 처리할 손잡이
___포인터가 뭔데?
___포인터의 개념
______칼럼: 주소는 어떻게 생겼는가?
___포인터 선언과 사용
______예제 6.1 주소 출력
______예제 6.2 double_it 함수
______동작 방법
______연습문제
___교환: 포인터를 사용하는 또 다른 함수
______예제 6.3 배열 정렬
______동작 방법
______연습문제
___포인터 연산
___포인터와 배열 처리
______예제 6.3 배열을 0으로 초기화
______동작 방법
______좀 더 간결한 코드 작성
______연습문제
___정리
7장 문자열: 텍스트 분석
___컴퓨터 내의 텍스트 저장소
______칼럼: 컴퓨터는 프로그램을 어떻게 번역하는가?
___문자열이 없다면 아무 뜻도 없다
___문자열 조작 함수
______예제 7.1 문자열 생성
______동작 방법
______연습문제
______칼럼: 이스케이프 문자열이란 무엇인가?
___문자열 입력 읽기
______예제 7.2 숫자 얻기
______동작 방법
______연습문제
______예제 7.3 대문자로 변환
______동작 방법
______연습문제
___개별 문자와 문자열
______예제 7.4 strtok으로 입력 값 자르기
______동작 방법
______연습문제
___새로운 C++ 문자열 데이터형
______String 클래스 지원 포함
______string으로 변수 선언과 초기화
______string형 변수로 작업
______입력과 출력
______예제 7.5 string형을 사용해 문자열 생성
______동작 방법
______연습문제
___string 클래스가 지원하는 기타 연산
___정리
8장 파일: 전자적 저장소
___파일 스트림 객체 소개
___디스크 파일을 참조하는 방법
______예제 8.1 파일에 글쓰기
______동작 방법
______연습문제
______예제 8.2 텍스트 파일 출력
______동작 방법
______연습문제
___텍스트 파일과 바이너리 파일
______칼럼: '바이너리 파일'들은 진짜로 바이너리일까?
___바이너리 연산 소개
______예제 8.3 무작위 접근 쓰기
______동작 방법
______연습문제
______예제 8.4 무작위 접근 읽기
______동작 방법
______연습문제
___정리
9장 고급 프로그래밍 기술
___커맨드라인 인자
______예제 9.1 커맨드라인에서 입력받은 파일 출력
______동작 방법
______프로그램 개선
______칼럼: 미리 정의된 상수의 아름다움
______연습문제
___함수 오버로딩
______칼럼: 오버로딩과 객체지향
______예제 9.2 다른 데이터형을 갖는 배열 출력
______동작 방법
______연습문제
___do-while 루프
___switch-case 명령문
___다중 모듈
___예외 처리: 예외가 있습니다!
______예외의 기초
______예외 처리: 첫 번째 시도
______try-catch 예외 처리 소개
___정리
10장 C++11의 새로운 기능
___C++11 기능의 개요
___long long형(long long long은 아님)
______칼럼: 왜 '자연' 정수인가?
______64비트 리터럴(상수) 사용
______long long형으로 입력받기
______long long 숫자 보기 좋게 출력
______예제 10.1 피보나치: 64비트 예제
______동작 방법
______연습문제
______숫자 현지화
______칼럼: 피보나치가 누굴까?
___범위 기반 'for'
______예제 10.2 범위 기반 'for'로 배열 초기화
______동작 방법
______연습문제
___auto와 decltype 키워드
___nullptr 키워드
___강한 데이터형 열거형
______C++11에서 enum 클래스
______확장된 열거형 문법: 저장소 제어
______예제 10.3 가위 바위 보 게임
______동작 방법
______더 재미있는 게임
______연습문제
___원 문자열 리터럴
___정리
11장 클래스 소개: 분수 클래스
___객체지향: 유사 지능 데이터형
______칼럼: OOP…… 그만한 가치가 있나요?
___Point: 간단한 클래스
______칼럼: C 프로그래머를 위한 칼럼: 구조체와 클래스
___private: 멤버들만 접근 가능(데이터 보호)
______예제 11.1 Point 클래스 검사
______동작 방법
______연습문제
___Fraction 클래스 소개
___인라인 함수
___최대공약수 찾기
___최소공배수 찾기
______예제 11.2 분수를 지원하는 함수
______동작 방법
______연습문제
______예제 11.3 Fraction 클래스 검사
______동작 방법
______칼럼: 새로운 #include 방식?
______연습문제
______예제 11.4 분수 연산: 뎃셈과 곱셈
______동작 방법
______연습문제
___정리
12장 생성자: 그걸 만든다면……
___생성자 소개
___다중 생성자(오버로딩)
___C++11만 지원: 클래스 내에서 멤버 초기화
___기본 생성자: 그리고 경고
______칼럼: C++가 기본 생성자를 가지고 놀리는 거 아냐?
___C++11만 지원: 생성자 파견? 위임?
___C++11만 지원: 일관된 초기화
______예제 12.1 Point 클래스 생성자
______동작 방법
______연습문제
______예제 12.2 분수 클래스 생성자
______동작 방법
______연습문제
___참조 변수와 인자(&)
___복사 생성자
______칼럼: 복사 생성자와 참조자
______예제 12.3 분수 클래스 복사 생성자
______동작 방법
______연습문제
___문자열에서 분수로 바꾸는 생성자
___정리
13장 연산자 함수: 클래스 활용
___클래스 연산자 함수 소개
___전역 함수로서의 연산자 함수
___참조자로 효율 높이기
______예제 13.1 포인트 클래스 연산자
______동작 방법
______연습문제
______예제 13.2 분수 클래스 연산자
______동작 방법
______코드 최적화
______연습문제
___기타 데이터형과 함께 사용
___클래스 할당 함수(=)
___같은지 비교 함수(==)
___클래스 '출력' 함수
______예제 13.3 최종 분수 클래스
______동작 방법
______연습문제
___C++11만 지원: 사용자 정의 리터럴
______원 문자열 리터럴 정의
______준비된 리터럴 정의
___정리
14장 동적 메모리와 문자열 클래스
___동적 메모리: 'new' 키워드
___객체와 'new'
___여러 데이터 할당
______칼럼: 메모리 할당과 관련된 문제 해결하기
______예제 14.1 동적 메모리 사용
______동작 방법
______연습문제
___클래스 소멸자
______예제 14.2 간단한 문자열 클래스
______동작 방법
______연습문제
___'깊은' 복사와 복사 생성자
___this 키워드
___할당 연산자 다시 보기
___결합 함수 작성
______예제 14.3 최종 문자열 클래스
______동작 방법
______연습문제
___정리
15장 완전한 OOP 예제 두 개
___연결 리스트 소개
______노드 설계
______간단한 연결 리스트 구현
______알파벳 순서 리스트
______예제 15.1 이름을 알파벳 순서로 정렬
______동작 방법
______메모리 누수 처리
______C++11만 지원: 삭제를 위해 스마트 포인터 사용
______칼럼: 재귀 호출과 반복 비교
______연습문제
___하노이의 탑, 애니메이션 추가
______mystack 클래스 설계
______mystack 클래스 사용
______예제 15.2 움직이는 타워
______동작 방법
______연습문제
___정리
16장 STL을 사용한 손쉬운 프로그래밍
___리스트 템플릿 소개
______칼럼: C++에서 템플릿 작성하기
______리스트 클래스 생성과 사용
______반복자 작성과 사용
______C++11만 지원: for each
______칼럼: 포인터와 반복자
______예제 16.1 STL 정렬된 리스트
______동작 방법
______지속적으로 정렬돼 있는 리스트
______연습문제
___RPN 계산기 설계
______칼럼: 폴란드식 표기법에 대한 간단한 역사 이야기
______RPN을 위해 스택 사용
______일반화된 STL 스택 클래스 소개
______예제 16.2 역폴란드 계산기
______동작 방법
______연습문제
___꺾쇠의 올바른 해석
___정리
17장 상속: 물려받은 것들
___하위 클래스를 만드는 방법
______칼럼: 왜 '공용(public)' 기본 클래스인가?
______예제 17.1 FloatFraction 클래스
______동작 방법
______연습문제
___FloatFraction 클래스에서의 문제
___C++11만 지원: 기본 클래스 생성자 상속
______예제 17.2 완전한 FloatFraction 클래스
______동작 방법
______연습문제
___보호받는 멤버
___객체 포함
___클래스 계층 구조를 통한 안전한 상속
___정리
18장 다형성: 객체 독립성
___FloatFraction 클래스에 대한 다른 접근 방법
___우리를 구원해줄 가상 함수!
______칼럼: 가상 함수를 쓰는 비용은?
______예제 18.1 수정된 FloatFraction 클래스
______동작 방법
______연습문제
___C++11만 지원: 명시적 오버라이딩 요구
___'순수 가상'과 기타 추상화 관련 사항
___추상 클래스와 인터페이스
___객체지향과 I/O
______끝없이 확장 가능한 cout
______다형적이지 않은 cout
______예제 18.2 진짜 다형성: Printable 클래스
______동작 방법
______연습문제
___마지막 한마디(혹은 두 마디)
___진짜 마지막 한마디
___정리
부록 A 연산자
___영역(::) 연산자
___sizeof 연산자
___데이터형을 변환하는 오래된 방법과 새로운 방법
___정수형과 부동소수점 나눗셈
___비트 단위 연산자(&, /, ^,~, <<, >>)
___조건 연산자
___할당 연산자
___연결(,) 연산자
부록 B 데이터형
___데이터형의 정밀도
___숫자 리터럴의 데이터형
___문자열 리터럴과 이스케이프 문자열
___부호가 있는 정수를 위한 2의 보수 표기법
부록 C 문법 요약
___기본 표현식 문법
___기본 명령문 문법
___제어 구조와 분기(branch) 명령문
___if-else 명령문
___while 명령문
___do-while 명령문
___for 명령문
___switch-case 명령문
___break 명령문
___continue 명령문
___goto 명령문
___return 명령문
___throw 명령문
___변수 선언
___함수 선언
___클래스 선언
___열거형 선언
부록 D 전처리 지시어
___#define 지시어
___## 연산자(결합)
___defined 함수
___#elif 지시어
___#endif 지시어
___#error 지시어
___#if 지시어
___#ifdef 지시어
___#ifndef 지시어
___#include 지시어
___#line 지시어
___#undef 지시어
___미리 정의된 상수
부록 E ASCII 코드
부록 F 표준 라이브러리 함수
___문자열(C 문자열) 함수
___데이터 변환 함수
___단일 문자 함수
___수학 함수
___난수 관련 함수
___시간 관련 함수
___strftime 함수를 위한 형식
부록 G I/O 스트림 객체와 클래스
___콘솔 스트림 객체
___I/O 스트림 조작기
___입력 스트림 함수
___출력 스트림 함수
___파일 I/O 함수
부록 H STL 클래스와 객체
___STL 문자열 클래스
___<list> 템플릿
___<stack> 템플릿
부록 I 용어집