Addison-Wesley / Prentice Hall
Computer Science
Browse available resources for Computer Science:
- Select a resource
- Resources for Computer Science GOAL where virtual office hours are 24/7! Your Own TA, Just a Click Away! Deitel Resource Centers National Center for Women & Information Technology View material from Search Engines: Information Retrieval in Practice VideoNotes Andrew Tanenbaum Flame Award Recipient Custom Programs Instructor Resource Center myPearsonStore

ISBN-10: 0131879057
ISBN-13: 9780131879058
Publisher: Prentice Hall
Copyright: 2007
Format: Paper; 656 pp
Published: 08/31/2006
Suggested retail price: $54.99
Buy from myPearsonStore
Master C++ and design patterns together, using the world's leading open source framework for cross-platform development: Qt 4. This book provides a unique approach to learning C++ using design patterns, for working professionals who already have some programming experience with another language or for students taking a course on C++ and Design Patterns. It is also a good introduction to Qt for users of C++ who have not yet discovered Qt.
Explore a fresh way of learning C++ using Trolltech's Qt 4, a modern cross-platform open-source framework
- Learn to use Qt, a powerful open-source application development framework
- Take advantage of other plug-in development tools
- Recognize and reuse good design patterns and code style
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++ 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 47
2.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 81
3.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 95
4.1 Introduction to Containers 96
4.2 Iterators 97
4.3 Relationships 99
Points of Departure 102
Review Questions 103
Chapter 5: Functions 105
5.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 135
6.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 166
Chapter 7: Libraries 169
7.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 181
8.1 Iteration and the Visitor Pattern 182
Review Questions 190
Chapter 9: QObject 191
9.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 213
10.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 237
11.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 277
12.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 307
13.1 Validators 308
13.2 Regular Expressions 310
13.3 Regular Expression Validation 316
Review Questions 319
Chapter 14: Parsing XML 321
14.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 341
15.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 359
16.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 391
17.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 423
18.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 434
Chapter 19: Types and Expressions 437
19.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 463
20.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 479
21.1 Statements 480
21.2 Selection Statements 480
21.3 Iteration 483
21.4 Exceptions 485
Review Questions 502
Chapter 22: Memory Access 503
22.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 523
23.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 541
24.1 Functions with Variable-Length Argument Lists 542
24.2 Resource Sharing 543
PART IV: Programming Assignments 548
Chapter 25: MP3 Jukebox Assignments 551
25.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 572
Appendix A: C++ Reserved Keywords 575
Appendix B: Standard Headers 577
Appendix C: The Development Environment 579
Bibliography 601
Index 603
<>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.
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
Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students, contact your Pearson Higher Education representative for pricing and ordering information.
This title is a member of the Bruce Perens' Open Source Series, which also contains the titles below . You can also visit the Bruce Perens' Open Source Series page.
AJAX: Creating Web Pages with Asynchronous JavaScript and XML
Woychowsky
© 2007 | Prentice Hall | Cloth; 432 pages | Instock
ISBN-10: 0132272679 | ISBN-13: 9780132272674
Buy from myPearsonStore
C++ GUI Programming with Qt 3
Blanchette & Summerfield
© 2004 | Prentice Hall | Paper; 464 pages | Instock
ISBN-10: 0131240722 | ISBN-13: 9780131240728
Brief Description | Buy from myPearsonStore
Cross-Platform GUI Programming with wxWidgets
Smart, Hock & Csomor
© 2006 | Prentice Hall | Paper Bound w/CD-ROM; 744 pages | Instock
ISBN-10: 0131473816 | ISBN-13: 9780131473812
Brief Description | Buy from myPearsonStore
Introduction to Design Patterns in C++ with Qt 4, An
Ezust & Ezust
© 2007 | Prentice Hall | Paper; 656 pages | Instock
ISBN-10: 0131879057 | ISBN-13: 9780131879058
Brief Description | Buy from myPearsonStore
Intrusion Detection with SNORT: Advanced IDS Techniques Using SNORT, Apache, MySQL, PHP, and ACID
Rehman
© 2003 | Prentice Hall | Paper; 288 pages | Estimated Availability: 05/08/2003
ISBN-10: 0131407333 | ISBN-13: 9780131407336
Brief Description | Buy from myPearsonStore
Linux® Patch Management: Keeping Linux® Systems Up To Date
Jang
© 2006 | Prentice Hall | Paper; 288 pages | Instock
ISBN-10: 0132366754 | ISBN-13: 9780132366755
Buy from myPearsonStore
Linux® Quick Fix Notebook
Harrison
© 2005 | Prentice Hall | Paper; 696 pages | Instock
ISBN-10: 0131861506 | ISBN-13: 9780131861503
Brief Description | Buy from myPearsonStore
Managing Linux Systems with Webmin: System Administration and Module Development
Cameron
© 2004 | Prentice Hall | Paper; 816 pages | Instock
ISBN-10: 0131408828 | ISBN-13: 9780131408821
Buy from myPearsonStore
The Official Samba-3 HOWTO and Reference Guide, 2/E
Terpstra, & Vernooij,
© 2006 | Prentice Hall | Paper; 944 pages | Instock
ISBN-10: 0131882228 | ISBN-13: 9780131882225
Brief Description | Buy from myPearsonStore
Open Source Security Tools: Practical Guide to Security Applications, A
Howlett
© 2005 | Prentice Hall | Paper; 608 pages | Instock
ISBN-10: 0321194438 | ISBN-13: 9780321194435
Buy from myPearsonStore
PHP 5 Power Programming
Gutmans, Bakken & Rethans
© 2005 | Prentice Hall | Paper; 720 pages | Instock
ISBN-10: 013147149X | ISBN-13: 9780131471498
Buy from myPearsonStore
Samba-3 by Example: Practical Exercises to Successful Deployment, 2/E
Terpstra
© 2006 | Prentice Hall | Paper Bound w/CD-ROM; 512 pages | Instock
ISBN-10: 013188221X | ISBN-13: 9780131882218
Brief Description | Buy from myPearsonStore
Understanding the Linux Virtual Memory Manager
Gorman
© 2004 | Prentice Hall | Paper Bound w/CD-ROM; 768 pages | Instock
ISBN-10: 0131453483 | ISBN-13: 9780131453487
Buy from myPearsonStore
Appropriate for all courses in Qt or KDE programming.
C++ GUI Programming with Qt 3 is the first official TrollTech guide to Qt 3.x programming. In this book, two TrollTech insiders provide students all they need to build industrial-strength applications with Qt 3.x and C++: applications that can run natively on Windows, Linux/Unix, Solaris, Mac OS X, and embedded Linux with no source code changes. The book teaches through example, and covers every facet of Qt 3 programming, ranging from basic user interfaces and layout managers to 2D/3D graphics, drag-and-drop, signaling, networking, XML, database integration, even internationalization and multithreading. The coverage will be appropriate for students at all levels of Qt expertise; students planning to build either open source or commercial applications; and students who wish to develop for Windows without purchasing an expensive compiler. C++ GUI Programming with Qt 3 is part of Bruce Perens Open Source Series, edited by Bruce Perens, one of the worlds leading authorities on open source technologies.
Unlike other cross-platform GUI toolkits (Tcl/Tk, Qt, AWT) wxWidgets
supports the native look-and-feel of the local OS. And unlike Qt, wxWidgets is
truly Open Source. It also works with virtually every standard C++ compiler.
It is a perfect solution for organizations interested in porting Windows
applications to Linux and other platforms. And with Mac OS X and Linux
gaining marketshare daily, many organizations -- including Xerox, Advanced
Micro Devices, AOL, Lockheed Martin, NASA--have adopted wxWidgets in
order to support Windows, Linux, OS X, and Unix for their applications. See
http://www.wxwidgets.org/
And wxWidgets is HOT. Mitch Kapor's OSAF is using wxWidgets for its
Chandler PIM. Bram Cohen uses wxWidgets for BitTorrent. Borland has
added enormous credibility to wxWidgets by incorporating it into its newest
C++ IDE: C++ BuilderX. wxWidgets is Borland's cross-platform
development solution.
Part of the Bruce Perens' Open Source Series, this book starts with introduction to intrusion detection and covers the five basic areas of Snort: 1)Installation. 2)Managing rules. 3)Managing input and out plugins. 4)Using MySQL with Snort to keep data in a database. 5)Web based user interface (ACID and Snortsnarf) to analyze data generated by Snort. In addition, the book contains appendices to provide information to readers including packet headers, XML DTD and so on.
In typical Linux "bibles," reserve the last third coverage for advanced topics
that sys admins use on a day by day basis. They tend to cover the underlying
concepts reasonably well, but fall short on hands-on instructions, forcing
admins to buy specialty books. This book sufficiently expands the advanced
sections found in these "bibles," providing step-by step instructions on how to
configure the most popular Linux back office applications.
To avoid confusion between the many flavors of Linux, each with it's own
GUI interface, this book exclusively uses the command line to illustrate the
tasks needed to be done. It provides all the expected screen output when
configuring the most commonly used Linux applications to help assure the
reader that they are doing the right thing. The Notebook also includes many of
the most commonly encountered errors with explanations of their causes and
how to fix them. The book's format is aimed at sys admins who often have to
do advanced tasks in which the underlying theory is understood, but the
commands to do it are forgotten or at the tips of their tongues.
As the line between power users and administrators continues to blur, as
computers move from the data center to the desktop, as Linux and Windows
gain equal footing in business, it becomes harder to remember and do it all.
This is the guide that gives admins the answers they need to common problems
and tasks, allowing them time to eat lunch.
Samba use continues to grow, particularly amongst Windows users. The
updates to the software have been extensive and this revised edition covers
structural changes and new features. Samba 3 will continue to dominate as
Samba 4 will not release for some time and will not be taken up strongly for at
least two years. Users have been asking for an updated book NOW. The
collected information this book conveys comes from answers given to
subscribers on the Samba mailing lists. Each question and answer has been
further investigated and documented. Particular coverage is given to all new
functionality and features introduced in Samba 3.0.14 (Replaceable password
backends, loadable virtual file system modules, implementation of advanced
management concepts, and much more). This book helps readers deploy
Samba 3.0.14, the latest version available this coming June. Existing Samba
users will appreciate the information on what is new with Samba 3.0.14. This
book also eases the transition for those switching over from Microsoft
Windows Server. 2003
Here is the Samba-3 tour guide you have been searching for! The complete
configuration files, step-by-step implementation instructions, network
diagrams, and automated scripts in this book make Samba-3 deployment a
breeze. From small office networks to enterprise environments, here are
proven configurations and expert guidance you won't find anywhere else.
Long-term Samba Team member John H. Terpstra covers all these scenarios,
and more. SAMBA-3 By Example is the manual that teaches you how to drive
Samba.
Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.
