Part 1 Modern C++를 시작하며
Chapter 01 C++와 객체지향의 이해
1. C++의 역사 속으로
1.1 C++ 등장배경과 표준
1.2 C++11의 주요 특징과 C++14
1.3 컴파일러 지원 동향
2. 객체지향 개념 이해
2.1 객체지향 모델링
2.2 객체지향 프로그래밍
■ 실전 프로젝트: 트위터 연동 주소록 관리 #1
기능 소개
Chapter 02 C++ 기본 문법 Ⅰ
1. 네임스페이스
2. 표준 입출력
2.1 입출력의 시작: 키보드와 모니터
2.2 파일 입출력
3. 변수와 자료형
3.1 C++ 예약어
3.2 C++ 기본 자료형
3.3 signed과 unsigned
3.4 올바른 값 할당
3.5 자료형 별칭 만들기
3.6 auto형 변수: 초깃값 필요
3.7 decltype형: 초깃값 불필요
■ 실전 프로젝트: 트위터 연동 주소록 관리 #2
사용자 정보 관리 기능
연락처 관리 기능
조작 메뉴 기능
기능 구현
Chapter 03 C++ 기본 문법 Ⅱ
1. 참조자와 한정자
1.1 참조자의 이해
1.2 한정자의 이해
2. 포인터
3. 형변환
3.1 배열의 포인터 변환
3.2 명시적 형변환
■ 실전 프로젝트: 트위터 연동 주소록 관리 #3
사용자의 정보 수정
연락처 제거와 상세 출력
조작 메뉴 기능
기능 구현
Chapter 04 함수
1. 함수의 이해
1.1 함수 바로 알기
1.2 함수의 구성 요소
2. 함수 선언과 정의 그리고 호출
2.1 함수 선언
2.2 함수 정의
2.3 함수 호출
3. 값에 의한 호출과 참조에 의한 호출
3.1 값에 의한 호출 방식
3.2 참조에 의한 호출 방식
4. 디폴트 매개변수
4.1 디폴트 매개변수를 지정하는 위치
4.2 디폴트 매개변수를 여러 개 사용하기
5. 함수 오버로딩
Chapter 05 인라인, 람다 함수
1. 인라인 함수
2. 람다 함수
Part 2 객체지향 프로그래밍으로써 Modern C++
Chapter 06 클래스와 객체
1. C++ 구조체
2. C++ 클래스 그리고 객체
2.1 C++ 클래스와 객체 개념 바로 알기
2.2 데이터 은닉
2.3 멤버 접근 지정자: public, private, protected
2.4 자신을 가리키는 포인터: this
2.5 속성과 기능에 따른 접근 지정
2.6 객체와 객체지향 프로그래밍
3. 멤버 함수 선언과 정의 분리
Chapter 07 추상화와 캡슐화, 생성자와 소멸자
1. 추상화와 캡슐화
1.1 추상화
1.2 캡슐화와 데이터 은닉
2. 생성자, 복사 생성자, 소멸자
2.1 생성자
2.2 디폴트 생성자
2.3 멤버 초기화를 이용한 생성자
2.4 소멸자
2.5 복사 생성자와 디폴트 복사 생성자
2.6 디폴트 복사 생성자의 문제점인 얕은 복사와 그 문제를 해결 하는 깊은 복사
2.7 복사 생성자가 호출되는 3가지 상황
■ 실전 프로젝트: 트위터 연동 주소록 관리 #4
프로젝트 구현 요약
소유자 정보
연락처
조작 메뉴
기능 구현
Chapter 08 friend, static, this 포인터
1. friend
1.1 클래스의 friend 선언
1.2 함수의 friend 선언
2. static 멤버 변수
3. this 포인터
Chapter 09 연산자 오버로딩, 동적 메모리 관리, 스마트 포인터
1. 연산자 오버로딩
1.1 기본 연산자 오버로딩
1.2 연산자 오버로딩 정리
1.3 대입 연산자 오버로딩
1.4 그 밖의 연산자 오버로딩
2. 동적 메모리 관리
2.1 C와 C++ 동적 메모리 할당과 해제 비교
2.2 객체를 동적 메모리에 할당
3. 스마트 포인터
3.1 auto_ptr
3.2 unique_ptr
3.3 shared_ptr
■ 실전 프로젝트: 트위터 연동 주소록 관리 #5
라이브러리 개념
freelec-twitcurl 라이브러리
소유자 정보
연락처
조작 메뉴 기능
기능 구현
Chapter 10 상속성과 다형성
1. 클래스 상속
1.1 클래스 상속 개념 바로 알기
1.2 클래스 상속 문법 이해
1.3 클래스 간 상속 관계 종류
2. 상속의 접근 범위
2.1 클래스 상속의 세 가지 형태
3. 함수 오버라이딩과 가상 함수
3.1 함수 오버라이딩의 이해
3.2 업 캐스팅과 다운 캐스팅의 이해
3.3 가상 함수의 이해
3.4 다형성
3.5 순수 가상 함수와 추상 클래스의 이해
4. 다중 상속
4.1 다중 상속 심화 이해
■ 실전 프로젝트: 트위터 연동 주소록 관리 #6
프로젝트 리뷰
프로젝트 분석
프로젝트 설계
기능 구현
Chapter 11 템플릿
1. 템플릿 개념
1.1 함수 템플릿 정의
1.2 함수 템플릿 사용
1.3 인자 추론
1.4 함수 템플릿의 특수화
1.5 함수 템플릿의 오버로딩
2. 클래스 템플릿
2.1 템플릿 파라미터
2.2 클래스 템플릿의 특수화
■ 실전 프로젝트: 트위터 연동 주소록 관리 #7
프로젝트 리뷰
프로젝트 분석
프로젝트 설계
기능 구현
Part 3 C++ 응용
Chapter 12 C++ 라이브러리: STL
1. 순차 컨테이너 (Sequential Container)
1.1 vector
1.2 deque
1.3 list
1.4 array
1.5 forward_list
2. 컨테이너 어댑터
2.1 queue
2.2 priority_queue
2.3 stack
3. 연관 컨테이너
3.1 map
3.2 multimap
3.3 set
3.4 multiset
4. 비순차 연관 컨테이너
4.1 unordered_map
■ 실전 프로젝트: 트위터 연동 주소록 관리 #8
프로젝트 리뷰
프로젝트 분석
프로젝트 재설계
기능 구현
Chapter 13 표준 템플릿 라이브러리의 활용
1. std::move
2. 스마트 포인터
2.1 unique_ptr
2.1 shared_ptr
■ 실전 프로젝트: 트위터 연동 주소록 관리 #9
프로젝트 리뷰
프로젝트 분석
프로젝트 설계
전체 클래스 설계
기능 구현
Chapter 14 예외 처리
1. 예외 처리의 이해
1.1 예외 개념 바로 알기
1.2 if 문을 이용한 예외 처리
2. 예외 처리 키워드 try와 catch
2.1 try와 catch
2.2 catch의 데이터형
3. 여러 개의 catch 문
4. 예외 던지기
4.1 throw를 이용한 예외 던지기
4.2 예외 명시
5. 객체를 이용한 예외 처리
5.1 사용자 정의 예외 클래스
5.2 표준 라이브러리의 예외
6. 스택 풀기
■ 실전 프로젝트: 트위터 연동 주소록 관리 #10
프로젝트 리뷰
프로젝트 분석
프로젝트 설계
전체 클래스 설계
기능 구현
Chapter 15 C++11의 새로운 기능 정리
1. C++11이란?
2. 컴파일할 때 데이터형이 정해지는 auto
3. 이름 없는 함수 lambda
4. range base for를 이용한 간단한 반복문 작성
5. 스마트 포인터
5.1 shared_ptr
5.2 unique_ptr
6. 서로 다른 데이터형을 묶는 tuple
7. 배열 타입을 선언하는 array
8. 단방향 리스트 forward_list
9. 나노 초까지 계산할 수 있는 초정밀 타임 객체 chrono
10. 멀티스레드 라이브러리 thread
11. 동기화 객체 mutex
12. 방해 없이 실행할 수 있는 atomic
부록 비주얼 스튜디오 2013 설치 방법
찾아보기