C++設計模式:基於Qt4開源跨平台開發框架

C++設計模式:基於Qt4開源跨平台開發框架

C++設計模式:基於Qt4開源跨平台開發框架是清華大學出版社出版的書籍。

基本信息

內容簡介

使用當今世界領先的開源跨平台開發環境qt 4來一起掌握c++與設計模式!

本書是一本完整的教程和參考書,閱讀本書並不要求您擁有c、c++、對象或模式的任何知識。在本書中您將逐步地學習每一個核心概念,通過均已在qt 4.1下測試過的一組精選示例,您可以一步一步地跨入程式設計的高級殿堂。

完成本書的學習後,您將可以創建多執行緒gui應用程式,這些應用程式可以訪問資料庫和操作xml檔案,當然更具有吸引力的是它們可以運行在包括 windows、linux、unix和mac osx在內的多個平台之上!最令人高興的是您已經可以編寫高效、可復用的一流代碼了。

作者簡介

alanezust曾在mcgill大學、suffolk大學以及leamix、nertel、objectivity、hewlett-packard 等公司和研究機構學習和工作過,有超過10年的講授編程知識和編寫課程資料的經驗,他獲得了mcgill大學的計算機碩士學位。

目錄

第Ⅰ部分C++和Qt4簡介

第1章C++簡介 3

1.1C++概述 4

1.2C++簡史 4

1.3在開源平台上安裝 4

1.3.2從原始碼安裝 6

1.4在Win32平台上安裝 8

1.5第一個C++示例 9

1.6輸入與輸出 12

1.7標識符、類型與常量 15

1.8C++的基本數據類型 17

1.8.1main函式與命令行參數 19

1.8.2代數運算 20

1.9C++標準庫字元串 23

1.10流 24

1.11關鍵字const 27

1.12指針與記憶體訪問 28

1.12.1一元運算符&與* 28

1.12.2運算符new和delete 30

1.13const*與*const 32

1.14引用變數 34

第2章類 37

2.1結構 38

2.2類定義 39

2.3成員訪問限定符 40

2.4封裝 42

2.5UML簡介 43

2.6類的友元 44

2.7構造函式 44

2.8子對象 46

2.9析構函式 47

2.10關鍵字static 48

2.11複製構造函式與賦值運算符 51

2.12轉換 53

2.13const成員函式 55

第3章Qt簡介 65

3.1示例工程:使用Qapplication與QLabel 66

3.2Makefile、qmake以及工程檔案 67

3.2.1#include:搜尋頭檔案 69

3.2.2make命令 70

3.2.3清除檔案 71

3.3獲得線上幫助 72

3.4風格指南與命名約定 73

3.5Qt核心模組 74

3.6流與日期 74

第4章列表 77

4.1容器簡介 78

4.2疊代器 78

4.3關係 80

第5章函式 85

5.1函式聲明 86

5.2重載函式 86

5.3可選參數 89

5.4運算符重載 91

5.5通過值傳遞參數 94

5.6通過引用傳遞參數 96

5.7const引用 99

5.8函式返回值 100

5.9從函式中返回引用 100

5.10根據const屬性進行重載 101

5.11內聯函式 103

5.12內聯還是宏擴展 104

第6章繼承與多態 109

6.1簡單派生 110

6.2多態派生 116

6.3從抽象基類中派生 121

6.4繼承設計 124

6.5重載、隱藏與覆蓋 126

6.6構造函式、析構函式與拷貝

賦值運算符 127

6.7處理命令行參數 129

第Ⅱ部分高級編程

第7章庫 139

7.1代碼容器 140

7.2重用其他庫 141

7.3組織庫:依賴管理 142

7.4安裝庫:實驗室練習 145

7.5框架與組件 146

第8章設計模式簡介 149

8.1目錄與檔案:QDir與

QFileInfo 150

8.2Visitor模式 151

8.3使用繼承來定製Visitor 153

第9章QObject 159

9.1QObject的子對象管理 161

9.2組合模式:父對象與子對象 163

9.3QApplication與事件循環 166

9.3.1布局:初觀 168

9.3.2連線到槽 169

9.3.3信號與槽 170

9.4Q_OBJECT與moc:一覽表 174

9.5值與對象 175

9.6tr()與國際化 176

第10章范型與容器 179

10.1范型與模板 180

10.1.1函式模板 180

10.1.2類模板 181

10.2容器 184

10.3管理容器、組合與聚合 185

10.4隱式共享類 188

10.5范型、算法和運算符 189

10.6serializer模式 191

10.7分類映射示例 193

第11章QtGUI部件 199

11.1部件分類 200

11.2QMainWindow和QSettings 201

11.3對話框 204

11.4圖像與資源 208

11.5部件的布局 211

11.5.1Spacing、Stretching和

Struts 214

11.5.2在布局之間移動部件 215

11.6QActions、QMenus和

QMenuBars 219

11.7QActions、QToolbars和

QActionGroups 221

11.8區域與QDockWidgets 228

11.9QStringList的視圖 229

第12章並行 233

12.1QProcess與進程控制 234

12.1.1進程與環境 236

12.1.2Qonsole:在Qt中編寫

一個Xterm 239

12.1.3帶有鍵盤事件的

Qonsole 241

12.2執行緒與QThread 244

12.2.1QPixmap和Qthread

直觀演示例子:電影

播放器 245

12.2.2帶有QTimer的電影

播放器 248

12.2.3多執行緒、佇列和Loggers

的例子:Giant 250

12.2.4執行緒安全與QObjects 256

12.3總結:QProcess和QThread 257

第13章驗證與正則表達式 259

13.1驗證器 260

13.2正則表達式 261

13.2.1正則表達式語法 262

13.2.2正則表達式:電話號碼

識別 264

13.3正則表達式驗證 267

第14章解析XML 271

14.1QtXML模組 274

14.2事件驅動解析 275

14.3XML、樹型結構和DOM 278

14.3.1Visitor模式:DOM

樹遍歷 280

14.3.2使用DOM生成XML 283

第15章元對象、性質和反射編程 289

15.1反模式 290

15.2QMetaObject:MetaObject

模式 291

15.3類型識別與qobject_cast 292

15.4Q_PROPERTY宏:描述

QObject性質 294

15.5QVariant類:訪問性質 297

15.6DataObject:QObject的

一個擴展 299

15.7性質容器:PropsMap 301

第16章更多設計模式 303

16.1創建型模式 304

16.1.1抽象工廠 305

16.1.2抽象工廠和庫 306

16.1.3qApp和Singleton模式 308

16.1.4創建規則和友元函式

(友元函式的真正用處) 309

16.1.5使用工廠的好處 312

16.2Serializer模式回顧 315

16.2.1導出到XML 317

16.2.2通過抽象工廠導入對象 318

16.3Fa?ade模式 322

16.3.1實用Fa?ade 325

16.3.2智慧型指針:auto_ptr 325

16.3.3FileTagger:Fa?ade示例 326

第17章模型與視圖 331

17.1M-V-C:控制器 332

17.2動態表單模型 333

17.2.1表單模型 336

17.2.2表單視圖 338

17.2.3未預見的類型 340

17.2.4控制Actions 341

17.2.5DateObject表單模型 343

17.3Qt4模型和視圖 347

17.4表模型 348

17.5樹模型 354

第18章QtSQL類 359

18.1MySQL簡介 360

18.2查詢與結果集合 363

18.3資料庫模型 364

第Ⅲ部分C++語言參考

第19章類型與表達式 369

19.1運算符 370

19.2邏輯表達式的估值 373

19.3枚舉 373

19.4有符號與無符號整數類型 375

19.5標準表達式轉換 377

19.6顯式類型轉換 378

19.7使用ANSIC++類型轉換進行安全類型轉換 379

19.7.1static_cast與const_cast 379

19.7.2reinterpret_cast 382

19.7.3不使用C語言風格的類型轉換的原因 383

19.8運行時類型識別(RTTI) 383

19.9成員選擇運算符 385

第20章作用域類與存儲類 391

20.1聲明與定義 392

20.2標識符作用域 393

20.2.1標識符的默認作用域小結 394

20.2.2檔案作用域與塊作用域及操作符:: 395

20.3存儲類 397

20.4名字空間 400

20.4.1匿名名字空間 402

20.4.2開放的名字空間 402

20.4.3名字空間、靜態對象與

extern 403

第21章語句與控制結構 405

21.1語句 406

21.2選擇語句 406

21.3循環 409

21.4異常 411

21.4.1異常處理 411

21.4.2異常類型 411

21.4.3拋出事件 412

21.4.4try與catch 415

21.4.5再談throw 419

21.4.6重新拋出的異常 420

21.4.7異常表達式 422

第22章記憶體訪問 427

22.1指針的“病理學” 428

22.3記憶體訪問概要 432

22.4數組 432

22.5指針算術操作 433

22.6數組、函式和返回值 434

22.7幾種不同的數組 436

22.8有效指針操作 436

22.9new操作失敗的處理方法 438

22.9.2使用set_new_handler和bad_alloc 440

22.9.3檢測null:測試new失敗的更新方法 441

22.10本章小結 442

第23章繼承詳述 445

23.1虛函式表指針和虛函式表 446

23.2多態和虛析構函式 448

23.3多重繼承 450

23.3.1多重繼承的語法 450

23.3.2帶抽象接口的多重繼承 452

23.3.3解決多重繼承衝突 453

23.4public、protected和private派生 456

第24章其他相關話題 459

24.1帶有變長參數列表的函式 460

24.2資源共享 461

第Ⅳ部分編程作業

第25章MP3點唱機作業 467

25.1數據模型:Mp3File 469

25.2Visitor:生成播放列表 470

25.3Preference:一個枚舉類型 471

25.4重用id3lib 473

25.5PlayListModel序列化 475

25.6測試Mp3File相關類 475

25.7簡單查詢和過濾器 476

25.8Mp3PlayerView 478

25.9模型和視圖:PlayList 479

25.10源選擇器 479

25.11持久設定 481

25.12給FileTagger編輯表格視圖 481

25.13資料庫視圖 482

第Ⅴ部分附錄

附錄AC++保留的關鍵字 487

附錄B標準頭檔案 489

附錄C開發環境 491

C.1用於#including檔案的預處理器 491

C.2連結器 493

C.3調試 496

C.3.1建立一個可調試的目標 497

C.3.2gdb快速入門 497

C.3.3查找內在錯誤 499

C.4Qt助手和設計器 501

C.5開源IDE和開發工具 502

C.5.1UML建模工具 504

C.5.2jEdit 504

參考文獻 507

相關詞條

相關搜尋

熱門詞條

聯絡我們