Warenkorb
Kostenloser Versand
Unsere Operationen sind klimaneutral

C++ Strategies and Tactics Robert B. Murray

C++ Strategies and Tactics von Robert B. Murray

C++ Strategies and Tactics Robert B. Murray


7,00
Zustand - Sehr Gut
Nur noch 1

Zusammenfassung

Starting with the overall design of C++ programs and progressing to the detailed design of C++ classes, Murray covers abstraction, single and multiple inheritance, design for inheritance, exceptions, handles, robustness, reusability, templates, memory management, performance, documentation, packagi

C++ Strategies and Tactics Zusammenfassung

C++ Strategies and Tactics Robert B. Murray

In chess, learning the rules for how the pieces move is simply the first step; to master the game, you must understand the strategies and tactics that guide each move. The same applies to C++. Knowing the right strategies helps you avoid the traps and work more effectively. Luminary Rob Murray helps beginning to intermediate C++ programmers take that next step by sharing his experience and advice. Practical code examples are used throughout to illuminate useful programming strategies and warn against dangerous practices. To further ensure comprehension, each chapter ends with a list of the key ideas introduced in that chapter, along with questions to stimulate thought and discussion. You'll begin by learning how to choose the right abstractions for your design, taking care to preserve the distinction between abstraction and implementation. You'll then look at the process of turning an abstraction into one or more C++ classes, with discussions ranging from high-level design strategies to low-level interface and implementation details.Single and multiple inheritance are explored in depth, beginning with a discussion of where they fit in a design and followed by detailed examples that show how the concepts are used in practice. A separate chapter covers the techniques of building classes from which others can derive, and discusses the benefits - and costs - involved. Rob Murray offers unprecedented insight into the new templates feature, beginning with the basics and walking you through several real-world examples. The author also describes a variety of specific techniques to make your programs faster, more reusable, and more robust. Exceptions are another new C++ feature; Murray gives advice on when they should - and should not - be used. The book concludes with a look at the process of moving a project from C to C++, exploring the human issues as well as the technical ones. 0201563827B04062001

Über Robert B. Murray

Robert B. Murray is President of Sarajen Software, an object-oriented software consulting company in Irvine, California. He was formerly with AT&T Bell Labs, where he was involved in the development of the C++ language, compilers, and libraries. He is the founding editor of The C++ Report, and has been teaching C++ tutorials at academic and professional conferences since 1987.



0201563827AB04062001

Inhaltsverzeichnis



Preface.


0. Introduction.

A Note about The Code Examples.

A Road Map.

Questions.

The Language Rules.



1. Abstraction.

A Telephone Number Abstraction.

Relationships Between Abstractions.

Worrying about the Boundary Conditions.

Designing with CRC Cards.

In Short.

Questions.



2. Classes.

Constructors.

Assignment.

Public Data.

Implicit Type Conversions.

Overloaded Operators: Members or Nonmembers?

Overloading, Defaults, and Ellipsis.

Const.

Returning References.

Static Constructors.

In Short.

Questions. CHAPTER = 3. Handles.

String Class.

Avoiding Copies with Use Counts.

Avoiding Recompilations: The Cheshire Cat.

Using Handles to Hide the Design.

Multiple Implementations.

Handles as Objects.

Summary.

In Short.

Questions.



4. Inheritance.

The is-a Relationship.

Public Inheritance.

Private Inheritance.

Protected Inheritance.

Conformance to Base Class Abstractions.

Pure Virtual Functions.

Inheritance Details and Traps.

In Short.

Questions.



5. Multiple Inheritance.

Multiple Inheritance as Set Intersection.

Virtual Base Classes.

Some Multiple Inheritance Details.

In Short.

Questions.



6. Designing for Inheritance.

The Protected Interface.

Should You Design for Inheritance?

Design for Inheritance: Some Examples.

Summary.

In Short.

Questions.



7. Templates.

A Pair Class Template.

Some Template Details.

Template Instantiation.

Smart Pointers.

Expression Arguments to Templates.

Function Templates.

In Short.

Questions.



8. Advanced Templates.

Container Classes Using Templates.

Example: A Block Class.

Detailed Block Design Issues.

Containers with Iterators: A List Class.

Iterator Design Issues.

Performance Issues.

Constraints on Template Arguments.

Template Specializations.

In Short.

Questions.



9. Reusability.

Discovery and Acquisition.

Robustness.

Memory Management.

Alternative Memory Allocation Schemes.

Passing Arguments to Operator New.

Managing External Resources.

Finding Memory Bugs.

Name Collisions.

Performance.

Don't Guess, Measure!

Algorithms.

Bottlenecks in Dynamic Memory Allocation.

Inlines.

Tiemann's Law.

In Short.

Questions.



10. Exceptions.

A Disclaimer.

Why Exceptions?

An Example Exception.

Exceptions Should Be Exceptional.

Understanding Exceptions.

Blame Assessment.

Designing the Exception Object.

In Short.

Questions.



11. Moving Your Project to C++.

Choosing C++.

Adopting C++.

Design and Implementation.

Developing an Asset Base.

A Closing Thought.

In Short.

Questions.



Index. 0201563827T04062001

Zusätzliche Informationen

GOR003084046
9780201563825
0201563827
C++ Strategies and Tactics Robert B. Murray
Gebraucht - Sehr Gut
Gebundene Ausgabe
Pearson Education (US)
19930518
296
N/A
Die Abbildung des Buches dient nur Illustrationszwecken, die tatsächliche Bindung, das Cover und die Auflage können sich davon unterscheiden.
Dies ist ein gebrauchtes Buch. Es wurde schon einmal gelesen und weist von der früheren Nutzung Gebrauchsspuren auf. Wir gehen davon aus, dass es im Großen und Ganzen in einem sehr guten Zustand ist. Sollten Sie jedoch nicht vollständig zufrieden sein, setzen Sie sich bitte mit uns in Verbindung.