| 000 | 00705camcc2200217 c 4500 | |
| 001 | 000045525765 | |
| 005 | 20130228111107 | |
| 007 | ta | |
| 008 | 090227s2009 bnka 000c kor | |
| 020 | ▼a 9788992927123 ▼g 13560 | |
| 035 | ▼a (KERIS)BIB000011616715 | |
| 040 | ▼a 241018 ▼c 241018 ▼d 244002 ▼d 211009 | |
| 082 | 0 4 | ▼a 005.133 ▼2 23 |
| 085 | ▼a 005.133 ▼2 DDCK | |
| 090 | ▼a 005.133 ▼b C110 2009z10 | |
| 100 | 1 | ▼a 김태용 |
| 245 | 2 0 | ▼a (gcc로 공부하는) C++ programming과 wxWidgets GUI개발 : ▼b 리눅스 개발자를 위한 김태용의 gcc와 C++ 기초 입문 / ▼d 김태용 저 |
| 260 | ▼a 부산 : ▼b 수퍼유저코리아, ▼c 2009 | |
| 300 | ▼a 783 p. : ▼b 삽화 ; ▼c 26 cm | |
| 653 | ▼a C++ ▼a 프로그래밍 |
소장정보
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.133 C110 2009z10 | 등록번호 121223654 (6회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. 2 | 소장처 세종학술정보원/과학기술실(5층)/ | 청구기호 005.133 C110 2009z10 | 등록번호 151272989 (10회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.133 C110 2009z10 | 등록번호 121223654 (6회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 세종학술정보원/과학기술실(5층)/ | 청구기호 005.133 C110 2009z10 | 등록번호 151272989 (10회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
C++ 언어의 기본 문법 파트와 크로스 플랫폼을 지원하는 wxWidgets GUI 툴킷에 대한 파트로 구성되어 있는 책이다. 파트 1에서는 C++ 프로그래밍에 입문하기 위한 기본 문법사항들을 공부한다.본 도서에서는 C++ 언어를 공부하기 위해 마이크로소프트의 VIsual C++를 사용하지 않고 공개 컴파일러인 gcc, g++를 사용한다.
파트 2에서는 GUI 프로그래밍을 위해 wxWidgets GUI 툴킷을 사용한 프로그래밍 방법에 대해 공부한다. 먼저 wxWidgets로 만들어진 간단한 예제부터 시작하여, GUI 폼을 구성하는 방법과 메뉴바, 레이아웃 구성을 공부하고, wxWidgets에서의 이벤트 처리와 기본적으로 제공되는 여러 가지 위젯들의 사용법을 공부한다.
본 도서는 총 2개의 파트로 구성되어 있다. C++ 언어의 기본 문법 파트와 크로스 플랫폼을 지원하는 wxWidgets GUI 툴킷에 대한 파트로 구성되어 있다.
Part 1. C++ 프로그래밍
파트 1에서는 C++ 프로그래밍에 입문하기 위한 기본 문법사항들을 공부한다.
본 도서에서는 C++ 언어를 공부하기 위해 마이크로소프트의 VIsual C++를 사용하지 않고 공개 컴파일러인 gcc, g++를 사용할 것이다. 그리고 예제 파일들에 대한 컴파일과 실행은 리눅스에서 수행한 결과를 표시하였다. 윈도우에서 gcc, g++ 컴파일러를 설치하기 위해서는 MinGW를 설치해야 하는데, 이에 대한 내용은 Chapter 19에 정리해 두었다.
먼저 C++ 언어에 대한 특징을 살펴보고, 생애 최초의 C++ 프로그래밍을 따라 해 보도록 하였으며, 예제에 사용된 내용들을 설명하는 방법으로 구성하였다. 변수와 상수 그리고 함수 작성법과 사용법, 배열과 포인터 부분에서도 관련된 예제를 통하여 이해를 할 수 있도록 노력하였으며, 메모리 관련 부분에서는 그림을 사용하여 설명함으로써 이해도를 높이기 위해 노력하였다.
객체지향 언어로써의 C++ 언어에 대해 공부하며, 클래스의 개념과 사용법에 대해 공부한다. 또한 클래스의 상속과 연산자 오버로딩, 템플릿, 예외처리에 대해 공부하고, C++ 언어의 파일 입출력에 대해 공부할 수 있도록 구성하였다.
Part 2. wxWidgets
파트 2에서는 GUI 프로그래밍을 위해 wxWidgets GUI 툴킷을 사용한 프로그래밍 방법에 대해 공부한다. C++ IDE로는 CodeBlocks를 사용하였다. 물론 wxDev-C++ IDE를 사용할 수도 있다.
wxWidgets는 크로스 플랫폼을 지원하는 GUI 툴킷이며 윈도우, 리눅스, 맥 OS에서 코드를 재사용할 수 있다. 즉, 한번 공부해 두면 여러 OS에서 소스코드를 재사용 가능하다.
먼저 wxWidgets로 만들어진 간단한 예제부터 시작하여, GUI 폼을 구성하는 방법과 메뉴바, 레이아웃 구성을 공부하고, wxWidgets에서의 이벤트 처리와 기본적으로 제공되는 여러 가지 위젯들의 사용법을 공부한다.
Chapter 19에는 윈도우와 리눅스에서 크로스 플랫폼 개발환경 구축을 위한 C++ 프로그래밍 환경구축에 대해 정리해 두었으며, 리눅스를 처음 접하시는 분들을 위해 Fedora 8 리눅스 배포판의 설치방법을 정리해 두었다.
Chaper 20에는 리눅스 개발환경에서 vi(m) 편집기 사용법과 RPM 패키징 그리고 협업을 위해 소스를 공유하여 작업 할 수 있는 SUBVERSION 시스템 구축과 사용법을 정리하였다.
마지막으로 윈도우에서 작성한 간단한 wxWidgets 프로그램 예제를 실어두었으며, 배포방법에 대해서 공부할 것이다.
정보제공 :
저자소개
김태용(지은이)
경북대학교 대학원에서 컴퓨터공학을 수학하였으며, LG전자 모니터사업부 연구원으로 사회생활을 시작하였다. 천리안 시절부터 리눅스 동호회에서 활발한 활동을 해온 저자는 현재 국내 최대의 리눅스 동호회로 성장한 한국리눅스유저그룹(1998, http://www.lug.or.kr, 18,000여 회원)을 조직하였다. 이전 정보통신부 시절에는 정보통신부, 한국IBM, 한국HP, 한국오라클 등의 다수 글로벌 기업 CEO와 실무자들이 참여한 한국리눅스협의회의 운영위원, 기술위원으로 활동하였다. 또한 SK, KT, 조달청, 부산상공회의소, 연세대학교, 부산대학교, 전남대학교, 경운대학교, 대구소프트웨어벤처타워 등을 비롯한 다수의 기업체, 관공서, 그리고 대학교에서 리눅스 세미나 지원과 강연을 진행하기도 하였다. 한국소프트웨어진흥원(KIPA), 대구디지털산업진흥원(DIP), 한국전자통신연구원(ETRI) 등과 함께 공개소프트웨어(OSS) 프로젝트에도 참여하였으며, 현재는 영진전문대학과 경운대학교 외래교수, 한국리눅스유저그룹 회장으로 활동하고 있다. 리눅스를 필두로 한 공개소프트웨어 확산을 위해 애쓰고 있는 저자는 공학/기술인의 위상을 높이고 공학과 기술 중심의 Technation Korea 건설을 위한 공학정치 실현에도 힘쓰고 있다. 저서 『김태용의 JSP 웹 프로그래밍 입문』(2011) 『김태용의 리눅스 쉘 스크립트 프로그래밍 입문』(2009) 『김태용의 C++ 기초 입문: gcc로 공부하는 C++ Programming과 wxWidgets GUI 개발』(2009) 『CentOS 리눅스 구축관리 실무』(2007)
목차
목차
저자소개
저자의글
추천사
각장소개
목차
Part 1. C++ 프로그래밍
Chapter1 C++ 프로그래밍 시작하기 = 24
1-1 컴퓨터의 내부구조 = 24
1-2 C++ 언어란 = 25
1-3 C++ 언어의 특징 = 27
1-4 C++ 프로그래밍 과정 = 30
1-5 첫 번째 C++ 프로그래밍 = 31
1-6 C 언어로부터 확장된 연산자 = 37
1-6-1 네임스페이스 범위지정 연산자(::) = 38
1-6-2 출력 연산자(≪) = 44
1-6-3 입력 연산자(≫) = 46
1-6-4 new와 delete 연산자 = 47
1-6-5 new 연산자의 NULL 포인터 리턴 = 51
[참고] 리눅스에서 C++ 소스 파일 컴파일 하기 = 55
Chapter 2 변수와 상수 그리고 함수 = 59
2-1 변수(Variable)란 = 59
2-2 변수의 데이터 타입 = 60
2-2-1 변수의 데이터 타입 정리 = 61
2-2-2 정수형(Integer) 데이터 타입 = 62
2-2-3 signed와 unsigned = 65
2-2-4 문자형(Character) 데이터 타입 = 65
2-2-5 변수 선언하기 = 68
2-2-6 변수에 값을 할당하는 법 = 71
2-2-7 typedef 예약어 = 73
2-2-8 지역변수(Local variable)와 전역변수(Global variable) = 76
2-3 상수(Constant) = 80
2-3-1 문자 상수(literal constant) = 80
2-3-2 기호 상수(symbolic constant) = 80
2-3-3 나열형 상수(enumerated constant) = 82
2-4 연산자(Operator) = 85
2-4-1 대입 연산자(assignment operator, =) = 85
2-4-2 산술 연산자(mathematical operator,+, -, *, /, %) = 85
2-4-3 산술 연산자와 대입 연산자의 혼용(+=, -=, *=, /=, %=) = 88
2-4-4 부호 연산자(-) = 88
2-4-5 증감 연산자(++, --) = 88
2-4-6 관계 연산자(relational operator, <, >, <=, >=, ==< !=) = 91
2-4-7 논리 연산자(logical operator, &&, ||, !) = 93
2-4-8 삼항 조건 연산자(?:) = 95
2-4-9 비트 연산자 = 96
2-4-9-1 AND 연산자 & = 98
2-4-9-2 비트와이즈 OR(|) = 102
2-4-9-3 비트와이즈 Exclusive OR(^) = 102
2-4-9-4 NOT 연산자(∼) = 103
2-4-9-5 시프트 연산자(≪,≫) = 103
2-5 판단문과 제어문 = 105
2-5-1 if 조건문 = 105
2-5-2 switch 분기문 = 106
2-5-3 for 반복문 = 108
2-5-4 while 반복문 = 109
2-5-5 반복문에서 break와 continue = 111
2-5-6 피해야 할 문장 = 113
2-6 함수(Function) = 114
2-6-1 함수의 선언(Declaring)과 정의(Definition) = 114
2-6-2 지역변수(Local variable)와 전역변수(Global variable) = 117
2-6-3 함수의 구조 = 123
2-6-4 Call By Value(값에 의한 호출) = 124
2-6-5 레퍼런스(Reference) = 126
2-6-6 Call By Reference(레퍼런스에 의한 호출) = 132
2-7 함수의 확장 = 138
2-7-1 함수 오버로딩 = 138
2-7-2 인라인(inline) 함수 = 141
2-7-3 함수의 동작 정리 = 144
Chapter 3 배열과 포인터 = 151
3-1 배열(Array) = 151
3-2 문자열 처리 = 154
3-2-1 문자열 초기화 = 155
3-2-2 변수에 문자열 대입하기 = 156
3-2-3 문자열을 다른 데이터 형으로 변환 = 160
3-2-4 문자열 조작 함수 = 161
3-3 포인터(Pointer) = 162
3-3-1 변수와 포인터 = 162
3-3-2 배열과 포인터 = 165
3-3-3 문자열과 포인터 = 166
3-3-4 포인터 연산 = 167
3-3-5 포인터의 포인터 = 170
3-3-6 void 포인터 = 171
3-3-7 널 포인터(NULL pointer) = 173
3-3-8 함수 포인터 = 174
Chapter 4 객체지향 언어 = 179
4-1 객체지향 언어(OOP)란 = 179
4-1-1 객체지향 프로그래밍의 특징 = 182
4-1-2 C++ 클래스의 구성 = 183
4-2 구조체와 클래스(Class) = 184
4-2-1 C 언어 구조체 처리방법 = 184
4-2-2 C++ 언어의 구조체 처리방법 = 186
4-3 클래스(Class)와 객체(Object) = 191
4-3-1 데이터 추상화(Data Abstraction)란 무엇인가? = 191
4-3-2 클래스(Class) = 192
4-3-3 객체(Object) = 193
4-4 클래스(Class) 멤버의 접근제어 = 194
4-4-1 클래스 선언 = 194
4-4-2 클래스 정의 = 195
4-4-3 클래스 사용 = 195
4-4-4 클래스의 내부접근과 외부접근 = 197
4-4-5 public과 private 접근권한 키워드 = 198
4-5 클래스(Class)의 초기화와 프로그램 종료 = 202
4-5-1 생성자(Constructor)와 소멸자(Destrutor) = 202
4-5-2 디폴트(Default) 생성자 = 207
4-5-3 생성자 함수와 메모리 동적할당 그리고 소멸자 = 211
4-5-4 소멸자(Destrutor) = 215
4-5-5 디폴트(Default) 소멸자 = 218
4-6 클래스와 배열 = 219
4-6-1 객체 배열 = 219
4-6-2 포인트 배열로 생성하는 객체 = 221
4-7 this 포인터(자기 참조 포인터) = 225
4-7-1 this 포인터의 용도 = 227
4-8 friend 키워드 = 229
4-8-1 클래스에 대한 friend 선언 = 230
4-9 복사 생성자 = 232
4-9-1 복사 생성자란 = 235
4-9-2 디폴트 복사 생성자 = 236
4-10 복사 생성자의 호출 시점 = 244
4-10-1 객체 생성시 기존 객체를 사용하여 초기화하는 경우 = 244
4-10-2 함수 호출 시 객체를 값에 의해 전달하는 경우 = 245
Chapter 5 const와 static = 250
5-1 const 키워드와 클래스가 만나면 = 250
5-1-1 const 상수 키워드 = 251
5-1-2 const 멤버변수 = 252
5-1-3 const 멤버함수 = 255
5-1-4 const 객체 = 259
5-2 static 키워드와 클래스가 만나면 = 262
5-2-1 static 키워드 = 262
5-2-2 explicit 키워드 = 272
5-2-3 mutable 키워드 = 273
Chapter 6 상속(Inheritance) = 276
6-1 클래스 상속 = 276
6-2 클래스 상속에서의 생성자와 소멸자 = 280
6-3 클래스의 상속과 멤버 접근권한 = 286
6-3-1 protected 접근권한 = 287
6-4 클래스간의 상속관계 = 289
Chapter 7 상속과 다형성 = 293
7-1 상속의 조건 = 293
7-2 상속 객체와 포인터 = 297
7-3 상속 객체와 레퍼런스 = 302
7-3-1 객체 참조 레퍼런스 = 302
7-3-2 객체 레퍼런스의 권한 = 304
7-4 정적 바인딩과 동적 바인딩 = 307
7-4-1 오버라이딩(overriding) = 307
7-4-2 멤버함수를 가상(virtual)으로 선언하기 = 310
7-4-3 가상함수의 특성은 상속된다 = 312
7-4-4 정적 바인딩(static binding)과 동적 바인딩(dynamic binding)이란 = 314
7-4-5 오버라이딩된 함수 호출하기 = 316
7-4-6 순수 가상함수(pure virtual function)와 추상(abstract) 클래스 = 318
7-4-7 virtual 소멸자 = 318
7-5 다중 상속 = 322
Chapter 8 연산자 오버로딩 = 327
8-1 연산자와 함수 = 327
8-2 연산자 오버로딩 = 327
8-2-1 연산자 함수를 정의한는 방법 = 329
8-2-2 전역함수에 의한 연산자 오버로딩 = 332
8-3 단항 연산자 오버로딩 = 335
8-3-1 증감 연산자 오버로딩 = 335
8-3-2 전위형과 후위형 증감연산자의 연산자 오버로딩 = 338
8-3-3 연산자의 교환법칙 = 343
8-3-4 ≪, ≫ 입출력 연산자 오버로딩 = 347
8-3-5 인덱스 연산자([]) 오버로딩 = 349
8-3-6 대입 연산자 오버로딩 = 350
Chapter 9 템플릿 = 360
9-1 템플릿(template) 이란 = 360
9-2 함수 템플릿 = 362
9-2-1 함수 템플릿의 특수화 = 364
9-3 클래스 템플릿 = 366
9-3-1 클래스 템플릿 정의 = 366
9-3-2 클래스 템플릿의 선언과 정의 분리 = 370
9-3-3 스택(Stack) 클래스의 템플릿화 = 372
Chapter 10 예외 처리 = 379
10-1 예외 처리란 = 379
10-2 C++ 언어의 예외 처리 = 379
10-2-1 리턴 값에 의한 예외 처리 = 379
10-2-2 C++ 언어의 기본적인 예외처리 방법(try∼catch, throw) = 381
10-2-3 스택 풀기(Stack Unwinding) = 383
10-2-4 처리되지 않은 예외 = 387
10-2-5 전달되는 예외 명시하기 = 389
10-2-6 하나의 try 블록과 여러 개의 catch 블록 = 391
10-3 예외를 나타내는 클래스와 상속 = 392
10-3-1 catch 블록에 예외가 전달되는 방식 = 392
10-3-2 상속 관계에서 예외 객체의 전달 = 393
10-3-3 new 연산자 예외 = 399
Chapter 11 C++ 입출력 = 404
11-1 C++ 입출력 기초 = 404
11-1-1 C++ 입출력 서식 = 405
11-1-2 cout의 멤버함수 width(), precision(), fill() = 411
11-1-3 ≪ 출력 연산자 오버로딩 예제 = 418
11-1-4 ≫ 입력 연산자 오버로딩 예제 = 419
11-2 파일 입출력 = 420
11-2-1 C++ 파일 입출력 기초 = 420
11-2-2 파일 입출력 방법 = 422
11-2-3 텍스트 모드와 바이너리 모드 = 427
11-2-4 텍스트 파일 복사 = 431
11-2-5 바이트 단위의 입출력 = 432
11-2-6 지정한 바이트 수 만큼 읽고 쓰기 = 433
11-2-7 getline() 함수를 이용한 문자열 읽기 = 435
11-2-8 peek()함수와 putback()함수의 사용 = 436
11-2-9 랜덤 액세스(random access) = 438
11-2-10 입출력 상태의 확인 = 439
11-2-11 ≪, ≫ 연산자 오버로딩은 수정 없이 파일에 적용 가능하다 = 442
Part 2. wxWidgets
Chapter 12 wxWidgets 시작 = 447
12-1 wxWidgets 시작 = 447
12-2 wxWidgets 예제 = 447
12-3 wxWidgets 애플리케이션 실행 순서 정리 = 465
Chapter 13 wxWidgets 메뉴바와 레이아웃 = 468
13-1 메뉴바 구성 = 468
13-2 간단한 메뉴바 구성하기 = 468
13-3 레이아웃 구성하기 = 474
13-3-1 절대 좌표 사용 = 474
13-3-2 sizer 사용 = 478
13-3-2-1 wxBoxSizer = 478
13-3-2-2 wxGridSizer = 489
13-3-2-1 wxFlexGridSizer = 492
Chapter 14 wxWidgets 이벤트 처리 = 497
14-1 이벤트 = 497
14-1-1 Event Table = 497
14-1-2 이벤트 전달 = 503
14-1-3 이벤트 거부(veto()) = 506
14-1-4 식별자(Identifier) = 509
Chapter 15 wxWidgets 다이얼로그 = 517
15-1 다이얼로그 = 517
15-2 정의된 다이얼로그 = 517
15-2-1 메시지 다이얼로그 = 517
15-2-2 wxFileDialog = 522
15-3 커스텀 다이얼로그(Custom Dialog) = 525
Chapter 16 wxWidgets 위젯들 = 530
16-1 여러 가지 위젯들 = 530
16-1-1 wxCheckBox = 530
16-1-2 wxBitmapButton = 533
16-1-3 wxToggleButton = 537
16-1-4 wxStaticLine = 542
16-1-5 wxStaticText = 546
16-1-6 wxSlider = 548
16-1-7 wxListBox = 552
16-1-8 wxNotebook = 559
16-1-9 wxScrolldeWindow = 563
16-2 Drag and Drop = 566
Chapter 17 Device Contexts = 574
17-1 Device Contexts, GDI = 574
17-2 Drawing text = 578
17-3 Point = 580
17-4 Pen = 583
17-5 Regions = 586
17-6 Gradient = 590
17-7 Shapes = 593
Chapter 18 기타 위젯 = 597
18-1 Burning Widget = 597
Chapter 19 윈도우와 리눅스에서 C++ 프로그래밍 환경 구축 = 606
19-1 윈도우에서 CodeBlocks 환경 구축 = 606
19-1-1 MinGW 설치하기 = 606
19-1-2 gdb 설치하기 = 608
19-1-3 wxWidgets 설치하기 = 609
19-1-4 CodeBlocks 설치하기 = 612
19-2 리눅스(Fedora) 설치와 CodeBlocks 환경 구축 = 621
19-2-1 Fedora 설치 = 621
19-2-1-1 Fedora LIVE CD로 부팅, 설치하기 = 623
19-2-1-2 필요한 패키지 원격 설치 = 642
19-2-2 Fedora 에 CodeBlocks 설치하기 = 649
Chapter 20 VI(M), RPM 패키징 그리고 SUBVERSION = 654
20-1 vi(m) 편집기 = 654
20-1-1 vi(m) 이란 = 654
20-1-2 vi(m) 시작 = 656
20-1-3 기본 편집 명령 = 659
20-1-3-1 한 문자씩 이동하기(h, j, k l) = 659
20-1-3-2 한 문자씩 삭제하기(x) = 659
20-1-3-3 Undo와 Redo(u, Ctrl+r) = 659
20-1-3-4 입력(i, a) = 660
20-1-3-5 줄 삭제와 추가하기(dd, o, O) = 660
20-1-3-6 복사와 붙여넣기 = 661
20-1-3-7 반복 실행 = 664
20-1-3-8 저장하기, 종료하기 = 665
20-1-4 추가적인 편집 명령 = 666
20-1-4-1 이동하기 = 666
20-1-4-2 단어 삭제(2d3w) = 670
20-1-4-3 "." 명령 = 671
20-1-4-4 매크로 = 671
20-1-4-5 기타(덮어쓰기, 줄 합하기, 대소문자 변경) = 672
20-1-4-6 문자열 검색 = 673
20-1-4-7 문자열 치환 = 674
20-2 RPM 패키지 만들기 = 681
20-2-1 RPM에 대한 이해 = 681
20-2-2 RPM 패키징 해보기 = 685
20-3 subversion 활용하기 = 710
20-3-1 subversion(svn) 설치하기 = 710
20-3-1-1 subversion 설치 = 710
20-3-1-2 repository(저장소) 생성과 설정 = 711
20-3-1-3 subversion daemon(데몬) 설정 및 시작 = 715
20-3-1-4 윈도우용 subversion client 설치 및 사용 = 721
20-3-2 websvn 설치하기 = 735
20-3-2-1 websvn 다운로드와 설치하기 = 735
20-3-2-2 아파치 2.x대에서 websvn 디렉토리 보여주기 = 738
Chapter 21 wxWidgets 프로그램 예제와 배포방법 = 744
21-1 자동종료 프로그램 만들기 예제 = 744
21-1-1 CodeBlocks 프로젝트 만들기 = 744
21-1-2 자동종료 프로그램 소스 코드 = 762
21-1-3 wxWidgets 프로그램 배포방법 = 780
