책제목 : 김태용의 C++ 기초 입문 :: gcc로 공부하는 c++와 wxWidgets
본 도서의 집필 목적
* 리눅스에서도 C++ 프로그래밍을 할 수 있다.
* 윈도우에서 gcc/g++ 로도 프로그래밍 할 수 있다.
* wxWidgets를 사용하여 크로스플랫폼을 지원하는 GUI 프로그래밍을 할 수 있다.
* 리눅스도 사용해 보자.
* 리눅스에서도 프로그래밍 해보자.
Part 1 C++ 프로그래밍
Chapter 1 :: C++ 프로그래밍 시작하기
1-1 컴퓨터의 내부구조
1-2 C++언어란
1-3 C++언어의 특징
1-4 C++ 프로그래밍 과정
1-5 첫 번째 C++ 프로그래밍
1-6 C언어로부터 확장된 연산자
1-6-1 네임스페이스 범위지정 연산자 (::)
1-6-2 출력 연산자(<<)
1-6-3 입력 연산자(>>)
1-6-4 new 와 delete 연산자
1-6-5 new 연산자의 NULL 포인터 리턴
[참고] - 리눅스에서 c++ 소스 파일 컴파일하기
Chapter 2 :: 변수와 상수 그리고 함수
2-1 변수(Variable)란
2-2 변수의 데이터 타입
2-2-1 변수의 데이터 타입 정리
2-2-2 정수형(Integer) 데이터 타입
2-2-3 signed와 unsigned
2-2-4 문자형(Character) 데이터 타입
2-2-5 변수 선언하기
2-2-6 변수에 값을 할당하는 법
2-2-7 typedef 예약어
2-2-8 지역변수(Local variable)와 전역변수(Global variable)
2-3 상수(Constant)
2-3-1 문자 상수(literal constant)
2-3-2 기호 상수(symbolic constant)
2-3-3 나열형 상수(enumerated constant)
2-4 연산자(Operator)
2-4-1 대입 연산자(assignment oprator, =)
2-4-2 산술 연산자(mathematical operator, +, -, *, /, %)
2-4-3 산술 연산자와 대입 연산자의 혼용(+=, -=, *=, /=, %=)
2-4-4 부호 연산자(-)
2-4-5 증감 연산자(++, --)
2-4-6 관계 연산자(relational operator, <, >, <=, >=, ==, !=)
2-4-7 논리 연산자(logical operator, &&, ||, !)
2-4-8 삼항 조건 연산자(?:)
2-4-9 비트 연산자
2-4-9-1 AND 연산자 &
2-4-9-2 비트와이즈 OR(|)
2-4-9-3 비트와이즈 Exclusive OR(^)
2-4-9-4 NOT 연산자(~)
2-4-9-5 시프트 연산자(<<, >>)
2-5 판단문과 제어문
2-5-1 if 조건문
2-5-2 switch 분기문
2-5-3 for 반복문
2-5-4 while 반복문
2-5-5 반복문에서 break와 continue
2-5-6 피해야 할 문장
2-6 함수(Function)
2-6-1 함수의 선언(Declaring)과 정의(Definition)
2-6-2 지역변수(Local variable)와 전역변수(Global variable)
2-6-3 함수의 구조
2-6-4 Call By Value(값에 의한 호출)
2-6-5 레퍼런스(Reference)
2-6-6 Call By Reference(레퍼런스에 의한 호출)
2-7 함수의 확장
2-7-1 함수 오버로딩
2-7-2 인라인(inline) 함수
2-7-3 함수의 동작 정리
Chapter 3 :: 배열과 포인터
3-1 배열(Array)
3-2 문자열 처리
3-2-1 문자열 초기화
3-2-2 변수에 문자열 대입하기
3-2-3 문자열을 다른 데이터 형으로 변환
3-2-4 문자열 조작 함수
3-3 포인터(Pointer)
3-3-1 변수와 포인터
3-3-2 배열과 포인터
3-3-3 문자열과 포인터
3-3-4 포인터 연산
3-3-5 포인터의 포인터
3-3-6 void 포인터
3-3-7 널 포인터(NULL pointer)
3-3-8 함수 포인터
Chapter 4 :: 객체지향 언어
4-1 객체지향 언어(OOP)란
4-1-1 객체지향 프로그래밍의 특징
4-1-2 C++ 클래스의 구성
4-2 구조체와 클래스(Class)
4-2-1 C언어 구조체 처리방법
4-2-2 C++언어의 구조체 처리방법
4-3 클래스(Class)와 객체(Object)
4-3-1 데이터 추상화(Data Abstraction)란 무엇인가?
4-3-2 클래스(Class)
4-3-3 객체(Object)
4-4 클래스(Class) 멤버의 접근제어
4-4-1 클래스 선언
4-4-2 클래스 정의
4-4-3 클래스 사용
4-4-4 클래스의 내부접근과 외부접근
4-4-5 public 과 private 접근권한 키워드
4-5 클래스(Class)의 초기화와 프로그램 종료
4-5-1 생성자(Constructor)와 소멸자(Destructor)
4-5-2 디폴트(Default) 생성자
4-5-3 생성자 함수와 메모리 동적할당 그리고 소멸자
4-5-4 소멸자(Destructor)
4-5-5 디폴트(Default) 소멸자
4-6 클래스와 배열
4-6-1 객체 배열
4-6-2 포인트 배열로 생성하는 객체
4-7 this 포인터(자기 참조 포인터)
4-7-1 this 포인터의 용도
4-8 friend 키워드
4-8-1 클래스에 대한 friend 선언
4-9 복사 생성자
4-9-1 복사 생성자란
4-9-2 디폴트 복사 생성자
4-10 복사 생성자의 호출 시점
4-10-1 객체 생성시 기존 객체를 사용하여 초기화하는 경우
4-10-2 함수 호출시 객체를 값에 의해 전달하는 경우
Chapter 5 :: const와 static
5-1 const 키워드와 클래스가 만나면
5-1-1 const 상수 키워드
5-1-2 const 멤버변수
5-1-3 const 멤버함수
5-1-4 const 객체
5-2 static 키워드와 클래스가 만나면
5-2-1 static 키워드
5-2-2 explicit 키워드
5-2-3 mutable 키워드
Chapter 6 :: 상속(Inheritance)
6-1 클래스 상속
6-2 클래스 상속에서의 생성자와 소멸자
6-3 클래스의 상속과 멤버 접근권한
6-3-1 protected 접근권한
6-4 클래스간의 상속관계
Chapter 7 :: 상속과 다형성
7-1 상속의 조건
7-2 상속 객체와 포인터
7-3 상속 객체와 레퍼런스
7-3-1 객체 참조 레퍼런스
7-3-2 객체 레퍼런스의 권한
7-4 정적 바인딩과 동적 바인딩
7-4-1 오버라이딩(overriding)
7-4-2 멤버함수를 가상(virtual)으로 선언하기
7-4-3 가상함수의 특성은 상속된다.
7-4-4 정적 바인딩(static binding)과 동적 바인딩(dynamic binding)이란
7-4-5 오버라이딩된 함수 호출하기
7-4-6 순수 가상함수(pure virtual function)와 추상(abstract) 클래스
7-4-7 virtual 소멸자
7-5 다중 상속
Chapter 8 :: 연산자 오버로딩
8-1 연산자와 함수
8-2 연산자 오버로딩
8-2-1 연산자 함수를 정의하는 방법
8-2-2 전역함수에 의한 연산자 오버로딩
8-3 단항 연산자 오버로딩
8-3-1 증감 연산자 오버로딩
8-3-2 전위형과 후위형 증감연산자의 연산자 오버로딩
8-3-3 연산자의 교환법칙
8-3-4 <<, >> 입출력 연산자 오버로딩
8-3-5 인덱스 연산자( [ ] ) 오버로딩
8-3-6 대입 연산자 오버로딩
Chapter 9 :: 템플릿
9-1 템플릿(template) 이란
9-2 함수 템플릿
9-2-1 함수 템플릿의 특수화
9-3 클래스 템플릿
9-3-1 클래스 템플릿 정의
9-3-2 클래스 템플릿의 선언과 정의 분리
9-3-3 스택(Stack) 클래스의 템플릿화
Chapter 10 :: 예외 처리
10-1 예외 처리란
10-2 C++ 언어의 예외 처리
10-2-1 리턴값에 의한 예외 처리
10-2-2 C++언어의 기본적인 예외처리 방법(try~catch, throw)
10-2-3 스택 풀기(Stack Unwinding)
10-2-4 처리되지 않은 예외
10-2-5 전달되는 예외 명시하기
10-2-6 하나의 try 블록과 여러 개의 catch 블록
10-3 예외를 나타내는 클래스와 상속
10-3-1 catch 블록에 예외가 전달되는 방식
10-3-2 상속 관계에서 예외 객체의 전달
10-3-3 new 연산자 예외
Chapter 11 :: C++ 입출력
11-1 C++ 입출력 기초
11-1-1 C++ 입출력 서식
11-1-2 cout의 멤버함수 width(), precision(), fill()
11-1-3 << 출력 연산자 오버로딩 예제
11-1-4 >> 입력 연산자 오버로딩 예제
11-2 파일 입출력
11-2-1 C++ 파일 입출력 기초
11-2-2 파일 입출력 방법
11-2-3 텍스트 모드와 바이너리 모드
11-2-4 텍스트 파일 복사
11-2-5 바이트 단위의 입출력
11-2-6 지정한 바이트 수 만큼 읽고 쓰기
11-2-7 getline() 함수를 이용한 문자열 읽기
11-2-8 peek()함수와 putback()함수의 사용
11-2-9 랜덤 액세스(random access)
11-2-10 입출력 상태의 확인
11-2-11 <<, >> 연산자 오버로딩은 수정없이 파일에 적용 가능하다.
Part 2 wxWidgets
Chapter 12 :: wxWidgets 시작
12-1 wxWidgets 시작
12-2 wxWidgets 예제
12-3 wxWidgets 애플리케이션 실행 순서 정리
Chapter 13 :: wxWidgets 메뉴바와 레이아웃
13-1 메뉴바 구성
13-2 간단한 메뉴바 구성하기
13-3 레이아웃 구성하기
13-3-1 절대 좌표 사용
13-3-2 sizer 사용
13-3-2-1 wxBoxSizer
13-3-2-2 wxGridSizer
13-3-2-3 wxFlexGridSizer
Chapter 14 :: wxWidgets 이벤트 처리
14-1 이벤트
14-1-1 Event Table
14-1-2 이벤트 전달
14-1-3 이벤트 거부(veto())
14-1-4 식별자(Identifier)
Chapter 15 :: wxWidgets 다이얼로그
15-1 다이얼로그
15-2 정의된 다이얼로그
15-2-1 메시지 다이얼로그
15-2-2 wxFileDialog
15-3 커스텀 다이얼로그(Custom Dialog)
Chapter 16 :: wxWidgets 위젯들
16-1 여러가지 위젯들
16-1-1 wxCheckBox
16-1-2 wxBitmapButton
16-1-3 wxToggleButton
16-1-4 wxStaticLine
16-1-5 wxStaticText
16-1-6 wxSlider
16-1-7 wxListBox
16-1-8 wxNotebook
16-1-9 wxScrolledWindow
16-2 Drag and Drop
Chapter 17 :: Device Contexts
17-1 Device Contexts, GDI
17-2 Drawing text
17-3 Point
17-4 Pen
17-5 Regions
17-6 Gradient
17-7 Shapes
Chapter 18 :: 기타 위젯
18-1 Burning Widget
Chapter 19 :: 윈도우와 리눅스에서 C++ 프로그래밍 환경 구축
19-1 윈도우에서 CodeBlocks 환경 구축
19-1-1 MinGW 설치하기
19-1-2 gdb 설치하기
19-1-3 wxWidgets 설치하기
19-1-4 CodeBlocks 설치하기
19-2 리눅스(Fedora) 설치와 CodeBlocks 환경 구축
19-2-1 Fedora 8 설치
19-2-1-1 Fedora 8 LIVE CD로 부팅, 설치하기
19-2-1-2 필요한 패키지 원격 설치
19-2-2 Fedora 8에 CodeBlocks 설치하기
Chapter 20 :: VI(M), RPM 패키징 그리고 SUBVERSION
20-1 vi(m) 편집기
20-1-1 vi(m) 이란
20-1-2 vi(m) 시작
20-1-3 기본 편집 명령
20-1-3-1 한문자씩 이동하기(h, j, k, l)
20-1-3-2 한문자씩 삭제하기(x)
20-1-3-3 Undo와 Redo(u, Ctrl+r)
20-1-3-4 입력(i, a)
20-1-3-5 줄 삭제와 추가하기(dd, o, O)
20-1-3-6 복사와 붙여넣기
20-1-3-7 반복 실행
20-1-3-8 저장하기, 종료하기
20-1-4 추가적인 편집 명령
20-1-4-1 이동하기
20-1-4-2 단어 삭제(2d3w)
20-1-4-3 "." 명령
20-1-4-4 매크로
20-1-4-5 기타(덮어쓰기, 줄합하기, 대소문자 변경)
20-1-4-6 문자열 검색
20-1-4-7 문자열 치환
20-2 RPM 패키지 만들기
20-2-1 RPM에 대한 이해
20-2-2 RPM 패키징 해보기
20-3 subversion 활용하기
20-3-1 subversion(svn) 설치하기
20-3-1-1 subversion 설치
20-3-1-2 repository(저장소) 생성과 설정
20-3-1-3 subversion daemon(데몬) 설정 및 시작
20-3-1-4 윈도우용 subversion client 설치 및 사용
20-3-2 websvn 설치하기
20-3-2-1 websvn 다운로드와 설치하기
20-3-2-2 아파치 2.x대에서 websvn 디렉토리 보여주기
Chapter 21 :: wxWidgets 프로그램 예제와 배포방법
21-1 자동종료 프로그램 만들기 예제
21-1-1 CodeBlocks 프로젝트 만들기
21-1-2 자동종료 프로그램 소스 코드
21-1-3 wxWidgets 프로그램 배포방법
수정하다보니 자꾸 분량이 늘어나네요..
현재 페이지 수는 700 페이지 초과 했네요.. ^^
우짜든동 5월달 안에는 마무리 지어야 겠네요.. 에고 힘들어..
눈팅만으로는 전체글을 볼 수 없습니다. 로그인하셔야 합니다.