• Complain

Bruce Eckel - Thinking In C++. Volume 2: Practical Programming

Here you can read online Bruce Eckel - Thinking In C++. Volume 2: Practical Programming full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2003, publisher: Prentice Hall, genre: Computer. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

No cover
  • Book:
    Thinking In C++. Volume 2: Practical Programming
  • Author:
  • Publisher:
    Prentice Hall
  • Genre:
  • Year:
    2003
  • ISBN:
    978-0130353139
  • Rating:
    3 / 5
  • Favourites:
    Add to favourites
  • Your mark:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Thinking In C++. Volume 2: Practical Programming: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "Thinking In C++. Volume 2: Practical Programming" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

Best selling author Bruce Eckel has joined forces with Chuck Allison to write , the sequel to the highly received and best selling . Eckel is the master of teaching professional programmers how to quickly learn cutting edge topics in C++ that are glossed over in other C++ books. In , the authors cover the finer points of exception handling, defensive programming and string and stream processing that every C++ programmer needs to know. Special attention is given to generic programming where the authors reveal little known techniques for effectively using the Standard Template Library. In addition, Eckel and Allison demonstrate how to apply RTTI, design patterns and concurrent programming techniques to improve the quality of industrial strength C++ applications. This book is targeted at programmers of all levels of experience who want to master C++.

Bruce Eckel: author's other books


Who wrote Thinking In C++. Volume 2: Practical Programming? Find out the surname, the name of the author of the book and a list of all author's works by series.

Thinking In C++. Volume 2: Practical Programming — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "Thinking In C++. Volume 2: Practical Programming" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make

Thinking In C++. Volume 2: Practical Programming

To all those who have worked tirelessly on the development of the C++ language

Preface

In Volume 1 of this book, you learn the fundamentals of C and C++. In this volume, we look at more advanced features, with an eye towards developing techniques and ideas that produce robust C++ programs.

Thus, in this volume we are assuming that you are familiar with the material developed in Volume 1.

Goals

Our goals in this book are to:.

1. Present the material a simple step at a time, so the reader can easily digest each concept before moving on.

2. Teach practical programming techniques that you can use on a day-to-day basis.

3. Give you what we think is important for you to understand about the language, rather than everything we know. We believe there is an information importance hierarchy, and there are some facts that 95% of programmers will never need to know, but that would just confuse people and add to their perception of the complexity of the language. To take an example from C, if you memorize the operator precedence table (we never did) you can write clever code. But if you have to think about it, it will confuse the reader/maintainer of that code. So forget about precedence, and use parentheses when things arent clear. This same attitude will be taken with some information in the C++ language, which is more important for compiler writers than for programmers.

4. Keep each section focused enough so the lecture timeand the time between exercise periodsis small. Not only does this keep the audience minds more active and involved during a hands-on seminar, but it gives the reader a greater sense of accomplishment.

5. We have endeavored not to use any particular vendors version of C++. We have tested the code on all the implementations we could, and when one implementation absolutely refused to work because it doesnt conform to the C++ Standard, weve flagged that fact in the example (youll see the flags in the source code) to exclude it from the build process.

6. Automate the compiling and testing of the code in the book. We have discovered that code that isnt compiled and tested is probably broken, so in this volume weve instrumented the examples with test code. In addition, the code that you can download from http://www.MindView.net has been extracted directly from the text of the book using programs that also automatically create makefiles to compile and run the tests. This way we know that the code in the book is correct.

Chapters

Here is a brief description of the chapters contained in this book:

Part 1: Building Stable Systems

1. Exception handling. Error handling has always been a problem in programming. Even if you dutifully return error information or set a flag, the function caller may simply ignore it. Exception handling is a primary feature in C++ that solves this problem by allowing you to throw an object out of your function when a critical error happens. You throw different types of objects for different errors, and the function caller catches these objects in separate error handling routines. If you throw an exception, it cannot be ignored, so you can guarantee that something will happen in response to your error. The decision to use exceptions (a good one!) affects code design in fundamental ways.

2. Defensive Programming. Many software problems can be prevented. To program defensively is to craft code in such a way that bugs can be found and fixed early before they have a chance to do damage in the field. The use of assertions is the single most important thing you can do to validate your code during development, while at the same time leaving an executable documentation trail in your code that reveals what you were thinking when you wrote the code in the first place. Before you let your code out of your hands it should be rigorously tested. A framework for automated unit testing is an indispensable tool for successful, everyday software development.

Part 2: The Standard C++ Library

3. Strings in Depth. Text processing is the most common programming activity by far. The C++ string class relieves the programmer from memory management issues, while at the same time delivering a powerhouse of text processing capability. C++ also supports the use of wide characters and locales for internationalized applications.

4. Iostreams. One of the original C++ librariesthe one that provides the essential I/O facilityis called iostreams. Iostreams is intended to replace Cs stdio.h with an I/O library that is easier to use, more flexible, and extensibleyou can adapt it to work with your new classes. This chapter teaches you the ins and outs of how to make the best use of the existing iostream library for standard I/O, file I/O, and in-memory formatting.

5. Templates in Depth. The distinguishing feature of modern C++ is the broad power of templates. Templates are for more than just generic containers; they support development of robust, generic, high-performance libraries. There is a lot to know about templatesthey constitute, as it were, a sub-language within the C++ language, and give the programmer an impressive degree of control over the compilation process. It is not an understatement to say that templates have revolutionized C++ programming.

6. Generic Algorithms. Algorithms are at the core of computing, and C++, through its template facility, supports an impressive entourage of powerful, efficient, and easy-to-use generic algorithms. The standard algorithms are also customizable through function objects. This chapter looks at every algorithm in the library. (Chapters 6 and 7 cover that portion of the standard C++ library commonly-known as the Standard Template Library, or STL.)

7. Generic Containers & Iterators. C++ supports all the common data structures known to man in a type-safe manner. You never have to worry about what such a container holds; the homogeneity of its objects is guaranteed. Separating the traversing of a container from the container itself, another accomplishment of templates, is made possible through iterators. This ingenious arrangement allows a flexible application of algorithms to containers by means of the simplest of designs.

Part 3: Special Topics

8. Run-time type identification. Run-time type identification (RTTI) lets you find the exact type of an object when you only have a pointer or reference to the base type. Normally, youll want to intentionally ignore the exact type of an object and let the virtual function mechanism implement the correct behavior for that type. But occasionally (like when writing software tools such as debuggers) it is helpful to know the exact type of an object for which you only have a base pointer; often this information allows you to perform a special-case operation more efficiently. This chapter explains what RTTI is for and how to use it.

9. Multiple inheritance. This sounds simple at first: A new class is inherited from more than one existing class. However, you can end up with ambiguities and multiple copies of base-class objects. That problem is solved with virtual base classes, but the bigger issue remains: When do you use it? Multiple inheritance is only essential when you need to manipulate an object through more than one common base class. This chapter explains the syntax for multiple inheritance, and shows alternative approachesin particular, how templates solve one common problem. The use of multiple inheritance to repair a damaged class interface is demonstrated as a genuinely valuable use of this feature.

Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «Thinking In C++. Volume 2: Practical Programming»

Look at similar books to Thinking In C++. Volume 2: Practical Programming. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «Thinking In C++. Volume 2: Practical Programming»

Discussion, reviews of the book Thinking In C++. Volume 2: Practical Programming and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.