서브메뉴

본문

초보자를 위한 C++ 21일 완성
초보자를 위한 C++ 21일 완성
저자 : 제시 리버티
출판사 : 인포북
출판년 : 2003
ISBN : 8980544987

책소개


21일 안에 입력과 출력 처리의 기초, 순환과 배열, 객체지향 프로그래밍, 템플릿, C++ 응용 프로그램 제작에 대해 배우고 알게 된다. 모두가 구조적으로 잘 정리되어 있어서 배우기 쉽게 꾸며졌다. 각 과정은 몇 개의 예제 프로그램을 제공하고 있다. 모두 완전한 출력 및 프로그램에 대한 분석을 제공하는데, 그 날 배운 주제를 잘 설명해주고 있다. 학습의 심화를 위해 각 과목 끝에 여러 개의 질문과 답변(Q&A), 연습문제와 퀴즈를 달아 놓았다. 이 책을 통해서 기초를 빠르게 다질 수 있으며, 고급 기능과 개념으로도 나아갈 수 있다.

목차


1일째 C++의 시작
간단한 C++의 역사
C++은 어떻게 진화되어 왔는가?
C를 먼저 배워야 하는가?
C++과 자바와 C#
ANSI 표준
프로그램 준비
개발자의 개발 환경(Development Environment)
원시 코드 컴파일하기
개발 주기(Development Cycle)
첫 번째 C++ 프로그램 작성(HELLO.cpp)
자신이 이용하는 컴파일러로 시작하는 경우
Hello World 프로젝트 구축
컴파일 오류들

2일째 C++ 프로그램의 각 부분들
간단한 프로그램의 각 부분들
간단히 살펴보는 cout
표준 이름 영역(Standard Namespace) 사용하기
주석문(Comments)
함수

3일째 변수와 상수
변수란 무엇인가?
변수 정의하기
동시에 같은 형 변수를 하나 이상 만들 때
변수에 값 대입하는 법
typedef
언제 short를 쓰고 언제 long을 쓰는가?
문자(Character)
상수(Constant)
나열형 상수(enumerated constant)

4일째 수식과 문장
문장(Statement)
수식문(Expression)
연산자(Operator)
대입 연산자(Assignment Operator)와 수학 연산자(Mathematical Operator)의 혼용
증가 연산자와 감소 연산자
연산자 우선 순위(Precedence)
중첩된 괄호
참(true)값의 속성
if 문장

5일째 함수
함수란 무엇인가?
반환값, 매개변수, 인자
함수 선언(Declaring)과 함수 정의(Definition)
함수 실행(Execution of Function)
지역 변수(Local Variable)
전역 변수(Global Variable)
전역 변수에 대한 주의 사항
지역 변수에 대한 추가 사항
함수문(Function Statement)
함수 인자(Function Argument)에 대한 부가 설명

6일째 객체지향 프로그래밍(Object-Oriented Programming)
C++은 객체지향인가?
새로운 형 만들기
클래스와 멤버
클래스 멤버에 접근하기
전용(private)과 범용(public)
클래스 메소드 구현
생성자와 소멸자
const 멤버 함수
인터페이스와 구현
클래스 선언과 메소드 정의를 어디에서 할 것인가?
inline 구현
다른 클래스를 멤버 자료로 갖는 클래스
구조체(Structures)

7일째 프로그래밍의 흐름
순환문(Looping)
while 순환문
do...while 순환문
do...while
for 순환문
순환문 요약
switch 문

8일째 포인터
포인터란 무엇인가?
포인터를 사용하는 이유?
스택과 자유 기억 공간(Free Store : 힙(Heap))
메모리 누출(Memory Leak)
자유 기억 장소에 객체 만들기
객체 지우기
자료 멤버(Data Member)에 접근
자유 기억 공간의 멤버 자료에 대해
this라는 포인터
실종된 포인터
const 포인터
const 포인터와 const 멤버 함수
const this 포인터
포인터 연산

9일째 참조자
참조자(reference)란 무엇인가?
참조자에 주소 연산자 '&' 사용하기
무엇이 참조될 수 있는가?
널 포인터와 널 참조자
함수 인자(Argument)를 참조자로 전달하기
함수 헤더와 함수 원형(Prototype)에 대한 이해
여러 개의 값을 반환하는 법
효율성(Efficiency)을 위해 참조자를 전달하자
참조자와 포인터를 사용하는 때
참조자와 포인터를 섞어서 쓸 때
범위에 벗어난 객체에 대한 참조자를 반환하면 안된다
힙에 있는 객체에 대한 참조자 반환하기
포인터, 도대체 누가 포인터를 갖고 있는가?

10일째 고급 함수들
중첩된(Overload) 멤버 함수
기본값(Default Value) 사용하기
기본값과 중첩 함수 중 어떤 것을 선택할 것인가?
기본 생성자(Default Constructor)
생성자 중첩
객체 초기화
복사 생성자(Copy Constructor)
연산자 중첩
변환 연산자

11일째 객체지향 분석과 설계
모델 구축
소프트웨어 설계 : 모델링 언어
소프트웨어 설계 : 프로세스
극단적인 프로그래밍
비전
요구 사항 분석
설계(Design)

12일째 상속
상속이란 무엇인가?
전용(private)과 보호(protected)
생성자와 소멸자
함수 재생(Overriding Function)
가상 메소드(Virtual Method)

13일째 배열과 연결 리스트
배열이란 무엇인가?
배열 원소(Array Element)
배열의 끝을 지나 값을 저장할 경우
울타리를 지난 오류
배열의 초기화
변수 선언
객체의 배열
다차원 배열(Multidimensional Array)
다차원 배열 초기화
메모리에 관하여
포인터 배열

14일째 다형성
단항 상속성(Single Inheritance)의 문제점
다중 상속(Multiple Inheritance)
추상 자료형(Abstract Data Type)

15일째 특수 클래스와 함수들
정적 멤버 자료
정적 멤버 함수
함수 포인터
멤버 함수에 대한 포인터

16일째 고급 상속 기능
포함(Containment)
상속/포함, 대리(Delegation
전용 상속(Private Inheritance)
프랜드 클래스(Friend Class)
프랜드 함수(Friend Function)
프랜드 함수와 연산자 중첩(Operator Overloading)
삽입 연산자(Insertion Operator) 중첩

17일째 스트림
스트림(Stream)에 대한 개괄
스트림과 버퍼
표준 입·출력 객체(Standard I/O Object)
재지정(Redirection)
cin을 사용한 입력
cin의 또 다른 멤버 함수
cout으로 출력
관련된 함수들
조종자(Manipulatior), 플래그(Flag), 규격 명령어(Formatting Instruction)
스트림과 printf() 함수
파일의 입력과 출력
이진 파일과 텍스트 파일
명령어 줄 프로세싱(Command-Line Processing)

18일째 이름 영역
시작
이름에 의해 해석되는 함수와 클래스
이름 영역 만들기
이름 영역 사용법
using 예약어
이름 영역의 별칭
무명의 이름 영역
표준 이름 영역 std

19일째 템플릿
템플릿(Template)이란 무엇인가?
매개변수화된 형
템플릿 정의
템플릿 함수
템플릿과 프랜드
템플릿 항목 사용하기
표준 템플릿 라이브러리
컨테이너
순차 컨테이너 이해하기
스택
Queue에 대한 이해
연상 컨테이너에 대한 이해
클래스 알고리즘

20일째 예외사항과 오류 처리
버그, 오류, 실수, 프로그램에 녹이 슬 때(Code Rot)
예외사항(Exception)
try 블록과 catch 블록의 사용
예외사항 안의 자료와 예외사항 객체의 작명법
예외사항과 템플릿
오류가 없는 예외사항
'녹슨 프로그램(Code Rot)'이라는 말에 대해
버그와 디버깅

21일째 이제 무엇을 해야 하나
전처리계와 컴파일러
중간 형태의 보기
#define 지시자 사용하기
포함(Inclusion) 및 포함 감시자(Inclusion Guard)
매크로 함수(Macro Function)
인라인 함수(Inline Function)
문자열 연산(String Manipulation)
내장 매크로(Predefined Macro)
assert()
비트 연산(Bit Twiddling)
문체(Style)
다음 단계

부록 A 이진법과 16진법
부록 B C++ 예약어
부록 C 연산자 우선 순위
부록 D 연습문제 및 해답

QuickMenu