An Introduction to Design Patterns in C++ with Qt 4
暫譯: C++ 與 Qt 4 的設計模式入門
Alan Ezust, Paul Ezust
- 出版商: Prentice Hall
- 出版日期: 2006-08-31
- 定價: $1,815
- 售價: 6.0 折 $1,089
- 語言: 英文
- 頁數: 656
- 裝訂: Paperback
- ISBN: 0131879057
- ISBN-13: 9780131879058
-
相關分類:
C++ 程式語言、Qt、Design Pattern
立即出貨(限量) (庫存=1)
買這商品的人也買了...
-
$890$703 -
$880$695 -
$1,270$1,207 -
$880$695 -
$590$561 -
$780$741 -
$780$663 -
$650$507 -
$550$435 -
$980$774 -
$650$507 -
$750$593 -
$680$537 -
$480$379 -
$2,390$2,271 -
$720$569 -
$1,200$948 -
$490$466 -
$690$587 -
$880$695 -
$780$663 -
$990$891 -
$600$480 -
$460Network Simulation Experiments Manual, 2/e
-
$1,488C++ GUI Programming with Qt 4, 2/e (Hardcover)
商品描述
Description
Learn C++, Patterns, and Qt 4 Cross-Platform Development
Master C++ and design patterns together, using the world's leading open source framework for cross-platform development: Qt 4.
An Introduction to Design Patterns in C++ with Qt 4 is a complete tutorial and reference that assumes no previous knowledge of C, C++, objects, or patterns. You'll walk through every core concept, one step at a time, learning through an extensive collection of Qt 4.1-tested examples and exercises.
By the time you're done, you'll be creating multithreaded GUI applications that access databases and manipulate XML files--applications that run on platforms including Windows, Linux, Unix, and Mac OS X. Best of all, you'll be writing code that's efficient, reusable, and elegant.
- Learn objects fast: classes, inheritance, polymorphism, and more
- Master powerful design patterns
- Discover efficient high-level programming techniques using libraries, generics, and containers
- Build graphical applications using Qt widgets, models, and views
- Learn advanced techniques ranging from multithreading to reflective programming
- Use Qt's built-in classes for accessing MySQL data
- Includes a complete C++ language reference
Table of Contents
Preface xix
Acknowledgments xxiii
Rationale for the Book xxv
About the Authors xxvii
PART I: Introduction to C++ and Qt 4 2
Chapter 1: C++ Introduction 5
1.1 Overview of C++ 61.2 A Brief History of C++ 6
1.3 Setup: Open-Source Platforms 7
1.4 Setup: Win32 12
1.5 C++ First Example 12
1.6 Input and Output 16
1.7 Identifiers, Types, and Literals 19
1.8 C++ Simple Types 22
1.9 C++ Standard Library Strings 30
1.10 Streams 31
1.11 The Keyword const 34
1.12 Pointers and Memory Access 36
1.13 const* and *const 40
1.14 Reference Variables 43
Points of Departure 44
Review Questions 45
Chapter 2: Classes 47
2.1 Structs 482.2 Class Definitions 49
2.3 Member Access Specifiers 51
2.4 Encapsulation 54
2.5 Introduction to UML 54
2.5.1 UML Relationships 55
2.6 Friends of a Class 55
2.7 Constructors 56
2.8 Subobjects 58
2.9 Destructors 60
2.10 The Keyword static 61
2.11 Copy Constructors and Assignment Operators 64
2.12 Conversions 67
2.13 const Member Functions 68
Review Questions 79
Chapter 3: Introduction to Qt 81
3.1 Example Project: Using QApplication and QLabel 823.2 Makefile, qmake, and Project Files 83
3.3 Getting Help Online 89
3.4 Style Guidelines and Naming Conventions 90
3.5 The Qt Core Module 91
3.6 Streams and Dates 91
Points of Departure 93
Review Questions 94
Chapter 4: Lists 95
4.1 Introduction to Containers 964.2 Iterators 97
4.3 Relationships 99
Points of Departure 102
Review Questions 103
Chapter 5: Functions 105
5.1 Function Declarations 1065.2 Overloading Functions 107
5.3 Optional Arguments 109
5.4 Operator Overloading 111
5.5 Parameter Passing by Value 116
5.6 Parameter Passing by Reference 118
5.7 References to const 121
5.8 Function Return Values 122
5.9 Returning References from Functions 122
5.10 Overloading on const-ness 124
5.11 Inline Functions 126
5.12 Inlining versus Macro Expansion 127
Review Questions 133
Chapter 6: Inheritance and Polymorphism 135
6.1 Simple Derivation 1366.2 Derivation with Polymorphism 142
6.3 Derivation from an Abstract Base Class 148
6.4 Inheritance Design 152
6.5 Overloading, Hiding, and Overriding 154
6.6 Constructors, Destructors, and Copy Assignment Operators 155
6.7 Processing Command-Line Arguments 158
Points of Departure 164
Review Questions 165
PART II: Higher-Level Programming 166
Chapter 7: Libraries 169
7.1 Code Containers 1707.2 Reusing Other Libraries 171
7.3 Organizing Libraries: Dependency Management 173
7.4 Installing Libraries: A Lab Exercise 176
7.5 Frameworks and Components 178
Review Questions 180
Chapter 8: Introduction to Design Patterns 181
8.1 Iteration and the Visitor Pattern 182Review Questions 190
Chapter 9: QObject 191
9.1 QObject's Child Managment 1949.2 Composite Pattern: Parents and Children 196
9.3 QApplication and the Event Loop 200
9.4 Q_OBJECT and moc: A Checklist 209
9.5 Values and Objects 210
9.6 tr() and Internationalization 211
Point of Departure 211
Review Questions 212
Chapter 10: Generics and Containers 213
10.1 Generics and Templates 21410.2 Containers 219
10.3 Managed Containers, Composites, and Aggregates 221
10.4 Implicitly Shared Classes 224
10.5 Generics, Algorithms, and Operators 225
10.6 Serializer Pattern 227
10.7 Sorted Map Example 229
Review Questions 235
Chapter 11: Qt GUI Widgets 237
11.1 Widget Categories 23911.2 QMainWindow and QSettings 240
11.3 Dialogs 244
11.4 Images and Resources 248
11.5 Layout of Widgets 251
11.6 QActions, QMenus, and QMenuBars 260
11.7 QActions, QToolbars, and QActionGroups 262
11.8 Regions and QDockWidgets 270
11.9 Views of a QStringList 272
Points of Departure 274
Review Questions 275
Chapter 12: Concurrency 277
12.1 QProcess and Process Control 27812.2 Threads and QThread 290
12.3 Summary: QProcess and QThread 303
Review Questions 305
Chapter 13: Validation and Regular Expressions 307
13.1 Validators 30813.2 Regular Expressions 310
13.3 Regular Expression Validation 316
Review Questions 319
Chapter 14: Parsing XML 321
14.1 The Qt XML Module 32514.2 Event-Driven Parsing 325
14.3 XML, Tree Structures, and DOM 329
Review Questions 340
Chapter 15: Meta Objects, Properties, and Reflective Programming 341
15.1 Anti-patterns 34215.2 QMetaObject: The MetaObject Pattern 344
15.3 Type Identification and qobject_cast 345
15.4 Q_PROPERTY Macro: Describing QObject Properties 347
15.5 QVariant Class: Accessing Properties 350
15.6 DataObject: An Extension of QObject 353
15.7 Property Containers: PropsMap 355
Review Questions 357
Chapter 16: More Design Patterns 359
16.1 Creational Patterns 36016.2 Serializer Pattern Revisited 373
16.3 The Facade Pattern 381
Points of Departure 389
Review Questions 390
Chapter 17: Models and Views 391
17.1 M-V-C: What about the Controller? 39217.2 Dynamic Form Models 393
17.3 Qt 4 Models and Views 409
17.4 Table Models 411
17.5 Tree Models 417
Review Questions 421
Chapter 18: Qt SQL Classes 423
18.1 Introduction to MySQL 42418.2 Queries and Result Sets 427
18.3 Database Models 429
Review Questions 433
PART III: C++ Language Reference 434
Chapter 19: Types and Expressions 437
19.1 Operators 43819.2 Evaluation of Logical Expressions 443
19.3 Enumerations 443
19.4 Signed and Unsigned Integral Types 445
19.5 Standard Expression Conversions 447
19.6 Explicit Conversions 449
19.7 Safer Typecasting Using ANSI C++ Typecasts 450
19.8 Run-Time Type Identification (RTTI) 454
19.9 Member Selection Operators 457
Point of Departure 458
Review Questions 461
Chapter 20: Scope and Storage Class 463
20.1 Declarations and Definitions 46420.2 Identifier Scope 465
20.3 Storage Class 470
20.4 Namespaces 473
Review Questions 478
Chapter 21: Statements and Control Structures 479
21.1 Statements 48021.2 Selection Statements 480
21.3 Iteration 483
21.4 Exceptions 485
Review Questions 502
Chapter 22: Memory Access 503
22.1 Pointer Pathology 50422.2 Further Pointer Pathology with Heap Memory 506
22.3 Memory Access Summary 509
22.4 Introduction to Arrays 509
22.5 Pointer Arithmetic 510
22.6 Arrays, Functions, and Return Values 511
22.7 Different Kinds of Arrays 513
22.8 Valid Pointer Operations 513
22.9 What Happens If new Fails? 515
22.10 Chapter Summary 519
Review Questions 521
Chapter 23: Inheritance in Detail 523
23.1 Virtual Pointers and Virtual Tables 52423.2 Polymorphism and virtual Destructors 526
23.3 Multiple Inheritance 528
Point of Departure 532
23.4 public, protected, and private Derivation 536
Review Questions 539
Chapter 24: Miscellaneous Topics 541
24.1 Functions with Variable-Length Argument Lists 54224.2 Resource Sharing 543
PART IV: Programming Assignments 548
Chapter 25: MP3 Jukebox Assignments 551
25.1 Data Model: Mp3File 55325.2 Visitor: Generating Playlists 555
25.3 Preference: An Enumerated Type 556
25.4 Reusing id3lib 559
25.5 PlayListModel Serialization 560
25.6 Testing Mp3File Related Classes 561
25.7 Simple Queries and Filters 561
25.8 Mp3PlayerView 563
25.9 Models and Views: PlayList 565
25.10 Source Selector 566
25.11 Persistent Settings 567
25.12 Edit Form View for FileTagger 568
25.13 Database View 569
Points of Departure 571
PART V: Appendices 572
Appendix A: C++ Reserved Keywords 575
Appendix B: Standard Headers 577
Appendix C: The Development Environment 579
Bibliography 601
Index 603
商品描述(中文翻譯)
**描述**
**學習 C++、設計模式與 Qt 4 跨平台開發**
掌握 C++ 和設計模式,使用全球領先的開源框架進行跨平台開發:Qt 4。
**《C++ 與 Qt 4 的設計模式入門》** 是一個完整的教程和參考,假設讀者對 C、C++、物件或模式沒有任何先前的知識。您將逐步了解每個核心概念,通過大量經過 Qt 4.1 測試的範例和練習進行學習。
完成後,您將能夠創建多執行緒的 GUI 應用程式,這些應用程式可以訪問資料庫並操作 XML 檔案——這些應用程式可以在 Windows、Linux、Unix 和 Mac OS X 等平台上運行。最重要的是,您將編寫高效、可重用且優雅的程式碼。
- 快速學習物件:類別、繼承、多型等
- 精通強大的設計模式
- 探索使用庫、泛型和容器的高效高級編程技術
- 使用 Qt 小部件、模型和視圖構建圖形應用程式
- 學習從多執行緒到反射編程的高級技術
- 使用 Qt 的內建類別訪問 MySQL 數據
- 包含完整的 C++ 語言參考
**目錄**
前言 xix
致謝 xxiii
本書的理由 xxv
關於作者 xxvii
第一部分:C++ 和 Qt 4 簡介 2
第 1 章:C++ 簡介 5
1.1 C++ 概述 6
1.2 C++ 的簡史 6
1.3 設置:開源平台 7
1.4 設置:Win32 12
1.5 C++ 第一個範例 12
1.6 輸入與輸出 16
1.7 標識符、類型和字面量 19
1.8 C++ 簡單類型 22
1.9 C++ 標準庫字串 30
1.10 流 31
1.11 關鍵字 const 34
1.12 指標和記憶體訪問 36
1.13 const* 和 *const 40
1.14 引用變數 43
出發點 44
複習問題 45
第 2 章:類別 47
2.1 結構 48
2.2 類別定義 49
2.3 成員訪問修飾符 51
2.4 封裝 54
2.5 UML 簡介 54
2.5.1 UML 關係 55
2.6 類別的朋友 55
2.7 建構子 56
2.8 子物件 58
2.9 解構子 60
2.10 關鍵字 static 61
2.11 複製建構子和賦值運算子 64
2.12 轉換 67
2.13 const 成員函數 68
複習問題 79
第 3 章:Qt 簡介 81
3.1 範例專案:使用 QApplication 和 QLabel 82
3.2 Makefile、qmake 和專案檔 83
3.3 在線獲取幫助 89
3.4 風格指南和命名慣例 90
3.5 Qt 核心模組 91
3.6 流和日期 91
出發點 93
複習問題 94
第 4 章:列表 95
4.1 容器簡介 96
4.2 迭代器 97
4.3 關係 99
出發點 102
複習問題 103
第 5 章:函數 105
5.1 函數聲明 106
5.2 函數重載 107
5.3 可選參數 109
5.4 運算子重載 111
5.5 值傳遞 116
5.6 引用傳遞 118
5.7 const 的引用 121
5.8 函數返回值 122
5.9 從函數返回引用 122
5.10 在 const 上重載 124
5.11 內聯函數 126
5.12 內聯與宏擴展 127
複習問題 133
第 6 章:繼承與多型 135
6.1 簡單派生 136
6.2 帶有多型的派生 142
6.3 從抽象基類派生 148
6.4 繼承設計 152
6.5 重載、隱藏和覆寫 154
6.6 建構子、解構子和複製賦值運算子 155
6.7 處理命令行參數 158
出發點 164
複習問題 165
第二部分:高級編程 166
第 7 章:庫 169
7.1 代碼容器 170
7.2 重用其他庫 171
7.3 組織庫:依賴管理 173
7.4 安裝庫:實驗練習 176
7.5 框架和組件 178
複習問題 180
第 8 章:設計模式簡介 181
8.1 迭代和訪問者模式 182
複習問題 190
第 9 章:QObject 191
9.1 QObject 的子管理 194
9.2 組合模式:父母和子女 196
9.3 QApplication 和事件循環 200
9.4 Q_OBJECT 和 moc:檢查清單 209
9.5 值和物件 210
9.6 tr() 和國際化 211
出發點 211
複習問題 212
第 10 章:泛型與容器 213
10.1 泛型和模板 214
10.2 容器 219
10.3 管理容器、組合和聚合 221
10.4 隱式共享類 224
10.5 泛型、演算法和運算子 225
10.6 序列化模式 227
10.7 排序映射範例 229
複習問題 235
第 11 章:Qt GUI 小部件 237
11.1 小部件類別 239
11.2 QMainWindow 和 QSettings 240
11.3 對話框 244
11.4 圖片和資源 248
11.5 小部件的佈局 251
11.6 QActions、QMenus 和 QMenuBars 260
11.7 QActions、QToolbars 和 QActionGroups 262
11.8 區域和 QDockWidgets 270
11.9 QStringList 的視圖 272
出發點 274
複習問題 275
第 12 章:並發 277
12.1 QProcess 和進程控制 278
12.2 執行緒和 QThread 290
12.3 總結:QProcess 和 QThread 303
複習問題 305
第 13 章:驗證與正則表達式 307
13.1 驗證器 308
13.2 正則表達式 310
13.3 正則表達式驗證 316
複習問題 319
第 14 章:解析 XML 321
14.1 Qt XML 模組 325
14.2 事件驅動解析 325
14.3 XML、樹結構和 DOM 329
複習問題 340
第 15 章:元物件、屬性和反射編程 341
15.1 反模式 342
15.2 QMetaObject:元物件模式 344
15.3 類型識別和 qobject_cast 345
15.4 Q_PROPERTY 宏:描述 QObject 屬性 347
15.5 QVariant 類:訪問屬性 350
15.6 DataObject:QObject 的擴展 353
15.7 屬性容器:PropsMap 355
複習問題 357
第 16 章:更多設計模式 359
16.1 創建模式 360
16.2 重新訪問序列化模式 373
16.3 外觀模式 381
出發點 389
複習問題 390
第 17 章:模型與視圖 391
17.1 M-V-C:控制器怎麼辦? 392
17.2 動態表單模型 393
17.3 Qt 4 模型與視圖 409
17.4 表格模型 411
17.5 樹模型 417
複習問題 421
第 18 章:Qt SQL 類 423
18.1 MySQL 簡介 424
18.2 查詢和結果集 427