An Introduction to Design Patterns in C++ with Qt 4 2nd Edition by Alan Ezust ; Paul Ezust

Price: £32.99

Discount: 17%
RRP: 39.99

More Details

Description

CONTENTS:

Foreword xv

Preface xix

Preface to the Second Edition xxii

Acknowledgments xxv

About the Authors xxx

Part I: Design Patterns and Qt 4 1

Chapter 1: C++ Introduction 3

1.1 Overview of C++ 3

1.2 A Brief History of C++ 4

1.3 C++ First Example 5

1.4 Standard Input and Output 8

1.5 Introduction to Functions 11

1.6 qmake, Project Files, and Makefile 17

1.7 Getting Help Online 24

1.8 Strings 24

1.9 Streams 26

1.10 File Streams 29

1.11 Qt Dialogs for User Input/Output 34

1.12 Identifiers, Types, and Literals 37

1.13 C++ Simple Types 40

1.14 The Keyword const 52

1.15 Pointers and Memory Access 54

1.16 Reference Variables 60

1.17 const* and *const 61

1.18 Review Questions 64

Chapter 2: Top of the class 67

2.1 First, There Was struct 67

2.2 Class Definitions 69

2.3 Member Access Specifiers 71

2.4 Encapsulation 74

2.5 Introduction to UML 75

2.6 Friends of a Class 76

2.7 Constructors 77

2.8 Destructors 80

2.9 The Keyword static 81

2.10 Class Declarations and Definitions 86

2.11 Copy Constructors and Assignment Operators 88

2.12 Conversions 92

2.13 const Member Functions 95

2.14 Subobjects 97

2.15 Exercise: Classes 98

2.16 Review Questions 108

Chapter 3: Introduction to Qt 113

3.1 Style Guidelines, Naming Conventions 114

3.2 The Qt Core Module 116

3.3 QtCreator - An IDE for Qt Programming 119

3.4 Exercises: Introduction to Qt 120

3.5 Review Questions 121

Chapter 4: Lists 122

4.1 Introduction to Containers 122

4.2 Iterators 123

4.3 Relationships 129

4.4 Exercise: Relationships 132

4.5 Review Questions 134

Chapter 5: Functions 135

5.1 Overloading Functions 135

5.2 Optional Arguments 138

5.3 Operator Overloading 141

5.4 Parameter Passing by Value 146

5.5 Parameter Passing by Reference 148

5.6 References to const 152

5.7 Function Return Values 154

5.8 Returning References from Functions 154

5.9 Overloading on const 155

5.10 inline Functions 158

5.11 Functions with Variable-Length Argument Lists 162

5.12 Exercise: Encryption 164

5.13 Review Questions 167

Chapter 6: Inheritance and Polymorphism 168

6.1 Simple Derivation 168

6.2 Derivation with Polymorphism 177

6.3 Derivation from an Abstract Base Class 184

6.4 Inheritance Design 189

6.5 Overloading, Hiding, and Overriding 191

6.6 Constructors, Destructors, and Copy Assignment Operators 193

6.7 Processing Command-Line Arguments 198

6.8 Containers 204

6.9 Managed Containers, Composites, and Aggregates 206

6.10 Containers of Pointers 210

6.11 Review Questions 228

Chapter 7: Libraries and Design Patterns 234

7.1 Building and Reusing Libraries 236

7.2 Exercise: Installing Libraries 244

7.3 Frameworks and Components 247

7.4 Design Patterns 248

7.5 Review Questions 257

Chapter 8: QObject, QApplication, Signals, and Slots 259

8.1 Values and Objects 263

8.2 Composite Pattern: Parents and Children 264

8.3 QApplication and the Event Loop 272

8.4 Q_OBJECT and moc: A checklist 274

8.5 Signals and Slots 275

8.6 QObject Lifecycle 277

8.7 QTestLib 277

8.8 Exercises: QObject, QApplication, Signals, and Slots 282

8.9 Review Questions 282

Chapter 9: Widgets and Designer 283

9.1 Widget Categories 284

9.2 Designer Introduction 286

9.3 Dialogs 290

9.4 Form Layout 292

9.5 Icons, Images, and Resources 295

9.6 Layout of Widgets 298

9.7 Designer Integration with Code 306

9.8 Exercise: Input Forms 313

9.9 The Event Loop: Revisited 314

9.10 Paint Events, Drawing Images 323

9.11 Review Questions 325

Chapter 10: Main Windows and Actions 326

10.1 QActions, QMenus, and QMenuBars 327

10.2 Regions and QDockWidgets 337

10.3 QSettings: Saving and Restoring Application State 339

10.4 Clipboard and Data Transfer Operations 341

10.5 The Command Pattern 343

10.6 tr() and Internationalization 351

10.7 Exercises: Main Windows and Actions 352

10.8 Review Questions 353

Chapter 11: Generics and Containers 355

11.1 Generics and Templates 355

11.2 Generics, Algorithms, and Operators 362

11.3 Sorted Map Example 365

11.4 Function Pointers and Functors 368

11.5 Flyweight Pattern: Implicitly Shared Classes 371

11.6 Exercise: Generics 375

11.7 Review Questions 376

Chapter 12: Meta Objects, Properties, and Reflective Programming 378

12.1 QMetaObject - The MetaObject Pattern 378

12.2 Type Identification and qobject_cast 380

12.3 Q_PROPERTY Macro - Describing QObject Properties 383

12.4 QVariant Class: Accessing Properties 386

12.5 Dynamic Properties 389

12.6 MetaTypes, Declaring, and Registering 394

12.7 invokeMethod() 396

12.8 Exercises: Reflection 397

12.9 Review Questions 397

Chapter 13: Models and Views 399

13.1 Model-View-Controller (MVC) 400

13.2 Qt Models and Views 402

13.3 Table Models 414

13.4 Tree Models 424

13.5 Smarter Pointers 429

13.6 Exercises: Models and Views 431

13.7 Review Questions 433

Chapter 14: Validation and Regular Expressions 434

14.1 Input Masks 435

14.2 Validators 438

14.3 Regular Expressions 440

14.4 Regular Expression Validation 449

14.5 Subclassing QValidator 451

14.6 Exercises: Validation and Regular Expressions 454

14.7 Review Questions 456

Chapter 15: Parsing XML 457

15.1 The Qt XML Parsers 460

15.2 SAX Parsing 462

15.3 XML, Tree Structures, and DOM 466

15.4 XML Streams 476

15.5 Review Questions 479

Chapter 16: More Design Patterns 481

16.1 Creational Patterns 481

16.2 Memento Pattern 491

16.3 Faade Pattern 498

16.4 Review Questions 505

Chapter 17: Concurrency 506

17.1 QProcess and Process Control 506

17.2 QThread and QtConcurrent 522

17.3 Exercises: QThread and QtConcurrent 536

17.4 Review Questions 537

Chapter 18: Database Programming 539

18.1 QSqlDatabase: Connecting to SQL from Qt 541

18.2 Queries and Result Sets 546

18.3 Database Models 548

18.4 Review Questions 549

Part II: C++ Language Reference 550

Chapter 19: Types and Expressions 552

19.1 Operators 553

19.2 Statements and Control Structures 557

19.3 Evaluation of Logical Expressions 564

19.4 Enumerations 565

19.5 Signed and Unsigned Integral Types 567

19.6 Standard Expression Conversions 570

19.7 Explicit Conversions 574

19.8 Safer Typecasting Using ANSI C++ Typecasts 574

19.9 Overloading Special Operators 581

19.10 Runtime Type Identification 587

19.11 Member Selection Operators 590

19.12 Exercises: Types and Expressions 592

19.13 Review Questions 594

Chapter 20: Scope and Storage Class 595

20.1 Declarations and Definitions 595

20.2 Identifier Scope 597

20.3 Storage Class 606

20.4 Namespaces 610

20.5 Review Questions 615

Chapter 21: Memory Access 617

21.1 Pointer Pathology 618

21.2 Further Pointer Pathology with Heap Memory 620

21.3 Memory Access Summary 623

21.4 Introduction to Arrays 624

21.5 Pointer Arithmetic 626

21.6 Arrays, Functions, and Return Values 627

21.7 Different Kinds of Arrays 629

21.8 Valid Pointer Operations 629

21.9 Arrays and Memory: Important Points 632

21.10 Exercises: Memory Access 633

21.11 Review Questions 634

Chapter 22: Inheritance in Detail 635

22.1 virtual Pointers, virtual Tables 635

22.2 Polymorphism and virtual Destructors 638

22.3 Multiple Inheritance 642

22.4 public, protected, and private Derivation 650

22.5 Review Questions 652

Part III: Programming Assignments 653

Chapter 23: MP3 Jukebox Assignments 655

23.1 Phonon/MultiMediaKit Setup 657

23.2 Playlist 657

23.3 Playlists 658

23.4 Source Selector 659

23.5 Database Playlists 661

23.6 Star Delegates 661

23.7 Sorting, Filtering, and Editing Playlists 661

Appendix A: C++ Reserved Keywords 662

Appendix B: Standard Headers 664

Appendix C: Development Tools 666

Appendix D: Alan's Quick Start Guide to Debian for Programmers 691

Appendix E: C++/Qt Setup 698

Bibliography 706

Index 709
Published

04 Oct 2011

Publisher

PRENTICE-HALL

ISBN

9780132826457

Pages

734

Static Book Details Index Page - Click Here to go to Computer Manuals Website