+612 9045 4394
The Art of C++ : Programming Ser. - Herbert Schildt

The Art of C++

Programming Ser.

Paperback Published: 7th April 2004
ISBN: 9780072255126
Number Of Pages: 428

Share This Book:


RRP $98.00
Ships in 7 to 10 business days

Learn how to apply C++ to a wide array of sophisticated applications. In his clear prose, C++ expert and the world's leading programming author Herb Schildt, shares practical, high-powered applications of C++, revealing some of the most interesting features of the language in the process. "Pure code" subsystems that can be adapted to your own programs, financial calculations, and file utilities are discussed. A C++ interpreter, an AI-based search engine, plus a Web-based example for those programmers who interface C++ with the Internet are also included. With downloadable code offered, this resource has something for every C++ developer.

Prefacep. xv
The Power of C++p. 1
A Terse yet Rich Syntaxp. 2
Powerful Librariesp. 3
The STLp. 3
The Programmer Is in Controlp. 4
Detailed Controlp. 4
Operator Overloadingp. 5
A Clean, Streamlined Object Modelp. 5
The Legacy of C++p. 6
A Simple Garbage Collector for C++p. 7
Comparing the Two Approaches to Memory Managementp. 8
The Pros and Cons of Manual Memory Managementp. 9
The Pros and Cons of Garbage Collectionp. 10
You Can Have It Both Waysp. 11
Creating a Garbage Collector in C++p. 11
Understanding the Problemp. 11
Choosing a Garbage Collection Algorithmp. 12
Reference Countingp. 12
Mark and Sweepp. 13
Copyingp. 13
Which Algorithm?p. 13
Implementing the Garbage Collectorp. 14
To Multithread or Not?p. 14
When to Collect Garbage?p. 15
What About auto_ptr?p. 15
A Simple C++ Garbage Collectorp. 16
An Overview of the Garbage Collector Classesp. 28
GCPtr In Detailp. 29
GCPtr Data Membersp. 30
The findPtrInfo() Functionp. 31
The GCIterator typedefp. 31
The GCPtr Constructorp. 31
The GCPtr Destructorp. 33
Collect Garbage with collect()p. 33
The Overloaded Assignment Operatorsp. 35
The GCPtr Copy Constructorp. 37
The Pointer Operators and Conversion Functionp. 38
The begin() and end() Functionsp. 40
The shutdown() Functionp. 40
Two Utility Functionsp. 41
GCInfop. 41
Iterp. 42
How to Use GCPtrp. 44
Handling Allocation Exceptionsp. 46
A More Interesting Examplep. 46
Allocating and Discarding Objectsp. 49
Allocating Arraysp. 51
Using GCPtr with Class Typesp. 53
A Larger Demonstration Programp. 55
Load Testingp. 62
Some Restrictionsp. 64
Some Things to Tryp. 65
Multithreading in C++p. 67
What Is Multithreading?p. 68
Multithreading Changes the Architecture of a Programp. 69
Why Doesn't C++ Contain Built-In Support for Multithreading?p. 69
What Operating System and Compiler?p. 70
An Overview of the Windows Thread Functionsp. 70
Creating and Terminating a Threadp. 71
The Visual C++ Alternatives to CreateThread() and ExitThread()p. 72
Suspending and Resuming a Threadp. 73
Changing the Priority of a Threadp. 74
Obtaining the Handle of the Main Threadp. 75
Synchronizationp. 76
Creating a Thread Control Panelp. 79
The Thread Control Panelp. 80
A Closer Look at the Thread Control Panelp. 85
Demonstrating the Control Panelp. 91
A Multithreaded Garbage Collectorp. 96
The Additional Member Variablesp. 97
The Multithreaded GCPtr Constructorp. 97
The TimeOutExc Exceptionp. 99
The Multithreaded GCPtr Destructorp. 100
The gc() Functionp. 100
The isRunning() Functionp. 101
Synchronizing Access to gclistp. 101
Two Other Changesp. 102
The Entire Multithreaded Garbage Collectorp. 102
Using the Multithreaded Garbage Collectorp. 116
Some Things to Tryp. 118
Extending C++p. 119
Why Use a Translator?p. 120
The Experimental Keywordsp. 121
The foreach Loopp. 122
The cases Statementp. 123
The typeof Operatorp. 124
The repeat/until Loopp. 125
A Translator for Experimental C++ Featuresp. 125
Using the Translatorp. 135
How the Translator Worksp. 136
The Global Declarationsp. 136
The main() Functionp. 137
The gettoken() and skipspaces() Functionsp. 139
Translating the foreach Loopp. 142
Translating the cases Statementp. 145
Translating the typeof Operatorp. 148
Translating a repeat/until Loopp. 149
A Demonstration Programp. 151
Some Things to Tryp. 158
An Internet File Downloaderp. 159
The WinINet Libraryp. 160
The File Downloader Subsystemp. 161
General Theory of Operationp. 166
The download() Functionp. 167
The ishttp() Functionp. 172
The httpverOK() Functionp. 173
The getfname() Functionp. 174
The openfile() Functionp. 174
The update() Functionp. 175
The Download Header Filep. 176
Demonstrating the File Downloaderp. 177
A GUI-Based Downloaderp. 178
The WinDL Codep. 179
How WinDL Worksp. 185
Some Things to Tryp. 186
Financial Calculations in C++p. 187
Finding the Payments for a Loanp. 188
Finding the Future Value of an Investmentp. 190
Finding the Initial Investment Required to Achieve a Future Valuep. 192
Finding the Initial Investment Needed for a Desired Annuityp. 194
Finding the Maximum Annuity for a Given Investmentp. 196
Finding the Remaining Balance on a Loanp. 197
Some Things to Tryp. 199
Al-Based Problem Solvingp. 201
Representation and Terminologyp. 202
Combinatorial Explosionsp. 204
Search Techniquesp. 206
Evaluating a Searchp. 206
The Problemp. 206
A Graphic Representationp. 207
The FlightInfo Structure and the Search Classp. 207
The Depth-First Searchp. 211
The match() Functionp. 217
The find() Functionp. 217
The findroute() Functionp. 218
Displaying the Routep. 219
An Analysis of the Depth-First Searchp. 220
The Breadth-First Searchp. 220
An Analysis of the Breadth-First Searchp. 223
Adding Heuristicsp. 224
The Hill-Climbing Searchp. 224
An Analysis of Hill Climbingp. 230
The Least-Cost Searchp. 231
An Analysis of the Least-Cost Searchp. 232
Finding Multiple Solutionsp. 233
Path Removalp. 234
Node Removalp. 235
Finding the "Optimal" Solutionp. 243
Back to the Lost Keysp. 249
Some Things to Tryp. 253
Building a Custom STL Containerp. 255
A Brief Review of the STLp. 256
Containersp. 257
Algorithmsp. 257
Iteratorsp. 257
Other STL Entitiesp. 257
Custom Container Requirementsp. 258
General Requirementsp. 258
Additional Sequence Container Requirementsp. 260
Associative Container Requirementsp. 260
Creating a Range-Selectable, Dynamic Array Containerp. 261
How RangeArray Worksp. 261
The Entire RangeArray Classp. 263
The RangeArray Class in Detailp. 275
Some RangeArray Sample Programsp. 288
Some Things to Tryp. 299
A Mini C++ Interpreterp. 301
Interpreters versus Compilersp. 302
An Overview of Mini C++p. 303
The Mini C++ Specificationsp. 304
Some Mini C++ Restrictionsp. 305
An Informal Theory of C++p. 306
C++ Expressionsp. 307
Defining an Expressionp. 307
The Expression Parserp. 309
The Parser Codep. 309
Tokenizing the Source Codep. 324
Displaying Syntax Errorsp. 330
Evaluating an Expressionp. 331
The Mini C++ Interpreterp. 333
The main() Functionp. 354
The Interpreter Prescanp. 356
The interp() Functionp. 359
Handling Local Variablesp. 362
Calling User-Defined Functionsp. 364
Assigning Values to Variablesp. 366
Executing an if Statementp. 368
The switch and break Statementsp. 370
Processing a while Loopp. 372
Processing a do-while Loopp. 373
The for Loopp. 375
Handling cin and cout Statementsp. 377
The Mini C++ Library Functionsp. 379
The mccommon.h Header Filep. 381
Compiling and Linking the Mini C++ Interpreterp. 383
Demonstrating Mini C++p. 383
Improving Mini C++p. 393
Expanding Mini C++p. 393
Adding New C++ Featuresp. 394
Adding Ancillary Featuresp. 394
Indexp. 395
Table of Contents provided by Ingram. All Rights Reserved.

ISBN: 9780072255126
ISBN-10: 0072255129
Series: Programming Ser.
Audience: Professional
Format: Paperback
Language: English
Number Of Pages: 428
Published: 7th April 2004
Publisher: McGraw-Hill Education - Europe
Country of Publication: US
Dimensions (cm): 23.5 x 19.0  x 2.2
Weight (kg): 0.73