|
|
||
![]() |
||
| HELP | ||
|
$51.75
New Trade Paper
Ships in 1 to 3 days
available for shipping or prepaid pickup only
This title in other formats:Other titles in the Bruce Perens' Open Source series:
An Introduction to Design Patterns in C++ with Qt 4by Alan Ezust
Synopses & ReviewsPublisher Comments: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.
Book News Annotation:Assuming no previous knowledge of C, C++, objects, or patterns, this
tutorial walks through core concepts for creating multithreaded GUI
applications for various platforms. Part I introduces C++, UML, and
the Qt core. Part II covers higher-order programming ideas, Qt
modules, and design patterns, and Part III covers in more depth some
of the C++ features introduced in Part I. Chapter review questions
and exercises are included. Alan Ezust has 10 years of experience
teaching programming. Paul Ezust chairs Suffolk University's
Department of Mathematics and Computer Science.
Annotation ©2006 Book News, Inc., Portland, OR (booknews.com) Book News Annotation:Assuming no previous knowledge of C, C++, objects, or patterns, this
tutorial walks through core concepts for creating multithreaded GUI
applications for various platforms. Part I introduces C++, UML, and
the Qt core. Part II covers higher-order programming ideas, Qt
modules, and design patterns, and Part III covers in more depth some
of the C++ features introduced in Part I. Chapter review questions
and exercises are included. Alan Ezust has 10 years of experience
teaching programming. Paul Ezust chairs Suffolk University's
Department of Mathematics and Computer Science.
Annotation ©2006 Book News, Inc., Portland, OR (booknews.com) About the Author<>Alan Ezust received his M.Sc in Computer Science from McGill, and has delivered courses on object oriented programming and APIs for over 15 years. He is an instructor and courseware developer at ics.com, leading provider of Trolltech-certified Qt training and services throughout North America.
Paul Ezust chairs Suffolk University's Department of Mathematics and Computer Science, and has taught computer science for nearly thirty years. He has done extensive consulting and contract programming.
Table of ContentsPreface xixAcknowledgments xxiiiRationale for the Book xxvAbout the Authors xxviiPART I: Introduction to C++ and Qt 4 2Chapter 1: C++ Introduction 51.1 Overview of C++ 6 1.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 472.1 Structs 48 2.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 813.1 Example Project: Using QApplication and QLabel 82 3.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 954.1 Introduction to Containers 96 4.2 Iterators 97 4.3 Relationships 99 Points of Departure 102 Review Questions 103 Chapter 5: Functions 1055.1 Function Declarations 106 5.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 1356.1 Simple Derivation 136 6.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 166Chapter 7: Libraries 1697.1 Code Containers 170 7.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 1818.1 Iteration and the Visitor Pattern 182 Review Questions 190 Chapter 9: QObject 1919.1 QObject's Child Managment 194 9.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 21310.1 Generics and Templates 214 10.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 23711.1 Widget Categories 239 11.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 27712.1 QProcess and Process Control 278 12.2 Threads and QThread 290 12.3 Summary: QProcess and QThread 303 Review Questions 305 Chapter 13: Validation and Regular Expressions 30713.1 Validators 308 13.2 Regular Expressions 310 13.3 Regular Expression Validation 316 Review Questions 319 Chapter 14: Parsing XML 32114.1 The Qt XML Module 325 14.2 Event-Driven Parsing 325 14.3 XML, Tree Structures, and DOM 329 Review Questions 340 Chapter 15: Meta Objects, Properties, and Reflective Programming 34115.1 Anti-patterns 342 15.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 35916.1 Creational Patterns 360 16.2 Serializer Pattern Revisited 373 16.3 The Facade Pattern 381 Points of Departure 389 Review Questions 390 Chapter 17: Models and Views 39117.1 M-V-C: What about the Controller? 392 17.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 42318.1 Introduction to MySQL 424 18.2 Queries and Result Sets 427 18.3 Database Models 429 Review Questions 433 PART III: C++ Language Reference 434Chapter 19: Types and Expressions 43719.1 Operators 438 19.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 46320.1 Declarations and Definitions 464 20.2 Identifier Scope 465 20.3 Storage Class 470 20.4 Namespaces 473 Review Questions 478 Chapter 21: Statements and Control Structures 47921.1 Statements 480 21.2 Selection Statements 480 21.3 Iteration 483 21.4 Exceptions 485 Review Questions 502 Chapter 22: Memory Access 50322.1 Pointer Pathology 504 22.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 52323.1 Virtual Pointers and Virtual Tables 524 23.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 54124.1 Functions with Variable-Length Argument Lists 542 24.2 Resource Sharing 543 PART IV: Programming Assignments 548Chapter 25: MP3 Jukebox Assignments 55125.1 Data Model: Mp3File 553 25.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 572Appendix A: C++ Reserved Keywords 575Appendix B: Standard Headers 577Appendix C: The Development Environment 579Bibliography 601Index 603What Our Readers Are SayingBe the first to add a comment for a chance to win!Product Details
Related Aisles | |||||||||
|
| ||||||||||
|
|
||||||||||