Thursday, May 17, 2007

C++ By Dissection


Title: C++ By Dissection
ISBN-10: 0201787334
ISBN-13: 978-0201787337
Author: Ira Pohl
Pages: 592
Publisher: Addison Wesley; Pap/Cdr edition (October 18, 2001)
Language: English
Format: PDF
Size: 5.16Mb
Summary: C++ by Dissection presents a thorough introduction to the programming process by carefully developing working programs to illuminate key features of the C++ programming language. This book presents the concepts of the programming process using the "dissection" method, the hallmark feature that has made Ira Pohl's C and Java books of the "By Dissection" series so popular. Dissection is a unique pedagogical tool first developed by the author to point out key features of program code. It is similar to a structured walk-through of the code, with the intention of explaining newly encountered programming elements and idioms as found in working code. The book includes a CD-ROM containing a compiler and an electronic version of the book that allows readers to search, take notes, and highlight right on their computer. Each chapter presents a number of carefully explained programs, which lead the reader in a holistic manner to ever-improving programming skills. Right from the start, the reader is introduced to complete programs, and at an early point in the book, the reader is introduced to writing functions as a major feature of structured programming. It contains four to seven small code dissections per chapter, and then each chapter culminates with a larger, extended code dissection. "Software Engineering" sections in each chapter reinforce sound software engineering skills. The book assumes no programming background and can be used by first-time computer users or by experienced programmers who are transitioning to C++.
-------------------------------------------------------------
Download: C++ By Dissection
-------------------------------------------------------------

Applied C++

Title: Applied C++: Techniques for Building Better Software
ISBN-10: 0321108949
ISBN-13: 978-0321108944
Author: Philip Romanik, Amy Muntz
Pages: 352
Publisher: Addison-Wesley Professional; Pap/Cdr edition (May 2, 2003)
Language: English
Format: CHM
Size: 2.13Mb
Summary: Applied C++ is a practical, straightforward guide to developing high-quality, maintainable software. It reflects the power of C++, templates, and the Standard Template Library for industrial-strength programming. Whether you are a single developer or work in a large team, the tips and techniques presented in this book will help you improve your language and design skills and show you how to solve substantial problems more effectively.The authors, drawing on their extensive professional experience, teach largely by example. To illustrate software techniques useful for any application, they develop a toolkit to solve the complex problem of digital image manipulation. By using a concrete, real-world problem and describing exact feature, performance, and extensibility requirements, the authors show you how to leverage existing software components and the tools inherent in C++ to speed development, promote reuse, and deliver successful software products.
-----------------------------------------
Download: Applied C++
-----------------------------------------

Modern C++ Design

Title: Modern C++ Design: Generic Programming and Design Patterns Applied
ISBN-10: 0201704315
ISBN-13: 978-0201704310Paperback: 352 pages
Author: Andrei Alexandrescu
Publisher: Addison-Wesley Professional; 1st edition (February 13, 2001)
Language: English
Format: PDF
Size: 2.14Mb
Summary: You might be holding this book in a bookstore, asking yourself whether you should buy it. Or maybe you are in your employers library, wondering whether you should invest time in reading it. I know you dont have time, so Ill cut to the chase. If you have ever asked yourself how to write higher-level programs in C++, how to cope with the avalanche of irrelevant details that plague even the cleanest design, or how to build reusable components that you dont have to hack into each time you take them to your next application, then this book is for you. Imagine the following scenario. You come from a design meeting with a couple of printed diagrams, scribbled with your annotations. Okay, the event type passed between these objects is not char anymore; its int. You change one line of code. The smart pointers to Widget are too slow; they should go unchecked. You change one line of code. The object factory needs to support the new Gadget class just added by another department. You change one line of code. You changed the design. Compile. Link. Done. Well, there is something wrong with this scenario, isnt there? A much more likely scenario is this: You come from the meeting in a hurry because you have a pile of work to do. You fire a global search. You perform surgery on code. You add code. You introduce bugs. You remove the bugs . . . thats the way a programmers job is, right? Although this book cannot possibly promise you the first scenario, it is nonetheless a resolute step in that direction. It tries to present C++ as a newly discovered language for software architects. Traditionally, code is the most detailed and intricate aspect of a software system. Historically, in spite of various levels of language support for design methodologies (such as object orientation), a significant gap persisted between the blueprints of a program and its code because the code must take care of the ultimate details of the implementation and of many ancillary tasks. The intent of the design is, more often than not, dissolved in a sea of quirks. This book presents a collection of reusable design artifacts, called generic components, together with the techniques that make them possible. These generic components bring their users the well-known benefits of libraries, but in the broader space of system architecture. The coding techniques and the implementations provided focus on tasks and issues that traditionally fall in the area of design, activities usually done before coding. Because of their high level, generic components make it possible to map intricate architectures to code in unusually expressive, terse, and easy-to-maintain ways. Three elements are reunited here: design patterns, generic programming, and C++. These elements are combined to achieve a very high rate of reuse, both horizontally and vertically. On the horizontal dimension, a small amount of library code implements a combinatorialand essentially open-endednumber of structures and behaviors. On the vertical dimension, the generality of these components makes them applicable to a vast range of programs. This book owes much to design patterns, powerful solutions to ever-recurring problems in object-oriented development. Design patterns are distilled pieces of good designrecipes for sound, reusable solutions to problems that can be encountered in manycontexts. Design patterns concentrate on providing a suggestive lexicon for designs to be conveyed. They describe the problem, a time-proven solution with its variants, and the consequences of choosing each variant of that solution. Design patterns go above and beyond anything a programming language, no matter how advanced, could possibly express. By following and combining certain design patterns, the components presented in this book tend to address a large category of concrete problems. Generic programming is a paradigm that focuses on abstracting types to a narrow collection of functional requirements and on implementing algorithms in terms of these requirements. Because algorithms define a strict and narrow interface to the types they operate on, the same algorithm can be used against a wide collection of types. The implementations in this book use generic programming techniques to achieve a minimal commitment to specificity, extraordinary terseness, and efficiency that rivals carefully handcrafted code. C++ is the only implementation tool used in this book. You will not find in this book code that implements nifty windowing systems, complex networking libraries, or clever logging mechanisms. Instead, you will find the fundamental components that make it easy to implement all of the above, and much more. C++ has the breadth necessary to make this possible. Its underlying C memory model ensures raw performance, its support for polymorphism enables object-oriented techniques, and its templates unleash an incredible code generation machine. Templates pervade all the code in the book because they allow close cooperation between the user and the library. The user of the library literally controls he way code is generated, in ways constrained by the library. The role of a generic component library is to allow user-specified types and behaviors to be combined with generic components in a sound design. Because of the static nature of the technique used, errors in mixing and matching the appropriate pieces are usually caught during compile time. This books manifest intent is to create generic componentspreimplemented pieces of design whose main characteristics are flexibility, versatility, and ease of use. Generic components do not form a framework. In fact, their approach is complementarywhereas a framework defines interdependent classes to foster a specific object model, generic components are lightweight design artifacts that are independent of each other, yet can be mixed and matched freely. They can be of great help in implementing frameworks.
-----------------------------------------------
Download: Modern C++ Design
-----------------------------------------------

Effective C++ / More Effective C++



Title: Effective C++ (2nd Edition) / More Effective C++
Author: Scott Meyers
Pages: 443
Format: PDF
Size: 5.51Mb
Summary:
Effective C++: This exceptionally useful text offers Scott Myers's expertise in C++ class design and programming tips. The second edition incorporates recent advances to C++ included in the ISO standard, including namespaces and built-in template classes, and is required reading for any working C++ developer. The book opens with some hints for porting code from C to C++ and then moves on to the proper use of the new and delete operators in C++ for more robust memory management. The text then proceeds to class design, including the proper use of constructors, destructors, and overloaded operator functions for assignment within classes. (These guidelines ensure that you will create custom C++ classes that are fully functional data types, which can be copied and assigned just like built-in C++ classes.) The author also provides a handful of suggestions for general class design, including strategies for using different types of inheritance and encapsulation. Never doctrinaire and always intelligent, these guidelines can make your C++ classes more robust and easier to maintain. --Richard Dragan --This text refers to an out of print or unavailable edition of this title.

More Effective C++: Proven methods for improving program efficiency, including incisive examinations of the time/space costs of C++ language features Comprehensive descriptions of advanced techniques used by C++ experts, including placement new, virtual constructors, smart pointers, reference counting, proxy classes, and double-dispatching Examples of the profound impact of exception handling on the structure and behavior of C++ classes and functions Practical treatments of new language features, including bool, mutable, explicit, namespaces, member templates, the Standard Template Library, and more. If your compilers don't yet support these features, Meyers shows you how to get the job done without them. More Effective C++ is filled with pragmatic, down-to-earth advice you'll use every day. Like Effective C++ before it, More Effective C++ is essential reading for anyone working with C++.
----------------------------------------
Download: Effective C++ (2nd Edition) / More Effective C++
----------------------------------------

C++ Primer Plus (5th Edition)


Title: C++ Primer Plus (5th Edition)
Pages: 1224
ISBN-10: 0672326973
ISBN-13: 978-0672326974
Publisher: Sams; 5 edition (November 15, 2004)
Language: English
Format:
Size:
Summary: If you are new to C++ programming, C++ Primer Plus, Fifth Edition is a friendly and easy-to-use self-study guide. You will cover the latest and most useful language enhancements, the Standard Template Library and ways to streamline object-oriented programming with C++. This guide also illustrates how to handle input and output, make programs perform repetitive tasks, manipulate data, hide information, use functions and build flexible, easily modifiable programs. With the help of this book, you will:
  • Learn C++ programming from the ground up.
  • Learn through real-world, hands-on examples.
  • Experiment with concepts, including classes, inheritance, templates and exceptions.
  • Reinforce knowledge gained through end-of-chapter review questions and practice programming exercises.

C++ Primer Plus, Fifth Edition makes learning and using important object-oriented programming concepts understandable. Choose this classic to learn the fundamentals and more of C++ programming.

--------------------------------------------------

Download: C++ Primer Plus (5th Edition)

--------------------------------------------------

More Exceptional C++

Title: More Exceptional C++
ISBN : 0-201-70434-X
Author: Herb Sutter
Publisher: Addison Wesley
Pub Date: December 17, 2001
Pages : 292
Format: PDF
Size: 17.4Mb
Summary: Puzzles and solutions to advanced topics in C++, using remove() and erase() for Standard Template Library (STL) containers, custom templates with inheritance and traits, using typename, containers used with pointers, the finer points of vector, set, and maps, potential problems with vector <>, post and prefix operators used with functions, templates overloading, explicit and partial template specialization (plus function template overloading), using STL to implement Mastermind (a number-guessing game), the finer points of inline functions, lazy optimizations (including copy-on-write--COW--and semantics for strings), iterators and references, gotchas in multithreaded environments, designing exception-safe classes, constructor failures and object lifetimes, uncaught exceptions (the pitfalls of using uncaught_exception()), unmanaged pointers (in parameter evaluation and auto_ptr); copy assignment, inheritance and exception safety issues, multiple inheritance dos and don'ts, the Siamese Twin problem, virtual functions, controlled polymorphism, memory management issues with smart pointers (auto_ptr), recursive declarations, how to simulate nested functions, preprocessor macros, hints for initialization, forward declarations, using typedef effectively, best practices for namespaces (including code maintenance and migrating existing C++ code to namespaces), and appendices on advice for multithreaded optimization.
--------------------------------------
Download: More Exceptional C++
--------------------------------------

The C++ Programming Language


Title: The C++ Programming Language (Special 3rd Edition)
Pages: 1022 pages
ISBN: 0201889544
Author: Bjarne Stroustrup
Publisher: Addison-Wesley Professional; Special edition (February 15, 2000)
Language: English
Format: PDF
Size: 3.38Mb
Summary:
More than a quarter of million programmers have benefited from this book in all of its editions.

Written by Bjarne Stroustrup, the creator of C++, this is the world's most trusted and widely read book on C++.

For this special hardcover edition, two new appendices on locales and standard library exception safety have been added. The result is complete, authoritative coverage of the C++ language, its standard library, and key design techniques. Basd on the ANSI/ISO C++ standard, The C++ Programming Language provides current and comprehensive coverage of all C++ language features and standard library components.

For example:

  • abstract classes as interfaces
  • class hierarchies for object-oriented programming
  • templates as the basis for type safe generic software
  • exceptions for regular error handling
  • namespaces for modularity in large-scale software
  • run-time type identification for loosely-coupled systems
  • the C subset of C++ for C compatibility and systems-level work
  • standard containers and algorithms
  • standard strings, I/O streams, and numerics
Bjarne Stroustrup makes C++ even more accessible to those new to the language, while adding advanced information and techniques that even expert C++ programmers will find invaluable.
--------------------------------------------------
Download: The C++ Programming Language
--------------------------------------------------