1 option
C++ FAQs / Marshall Cline, Greg Lomow, Mike Girou.
- Format:
- Book
- Author/Creator:
- Cline, Marshall P.
- Language:
- English
- Subjects (All):
- C++ (Computer program language).
- Physical Description:
- 1 online resource (xxxiii, 587 p. )
- Edition:
- 2nd ed.
- Place of Publication:
- Reading, Mass. : Addison-Wesley, c1999.
- Language Note:
- English
- System Details:
- text file
- Summary:
- In a concise and direct question-and-answer format, C++ FAQs, Second Edition brings you the most efficient solutions to more than four hundred of the practical programming challenges you face every day. Moderators of the on-line C++ FAQ at comp.lang.c++, Marshall Cline, Greg Lomow, and Mike Girou are familiar with C++ programmers' most pressing concerns. In this book, the authors concentrate on those issues most critical to the professional programmer's work, and they present more explanatory material and examples than is possible on-line. This book focuses on the effective use of C++, helping programmers avoid combining seemingly legal C++ constructs in incompatible ways. This second edition is completely up-to-date with the final ANSI/ISO C++ Standard. It covers some of the smaller syntax changes, such as "mutable"; more significant changes, such as RTTI and namespaces; and such major innovations as the C++ Standard Library, including the STL. In addition, this book discusses technologies such as Java, CORBA, COM/COM+, and ActiveX--and the relationship all of these have with C++. These new features and technologies are iconed to help you quickly find what is new and different in this edition. Each question-and-answer section contains an overview of the problem and solution, fuller explanations of concepts, directions for proper use of language features, guidelines for best practices and practices to avoid, and plenty of working, stand-alone examples. This edition is thoroughly cross-referenced and indexed for quick access. Get a value-added service! Try out all the examples from this book at www.codesaw.com. CodeSaw is a free online learning tool that allows you to experiment with live code from your book right in your browser. 0201309831B11102003
- Contents:
- Cover
- Contents
- Acknowledgments
- Part I: Preliminaries
- Chapter 1 Introduction
- FAQ 1.01: What is the purpose of this chapter?
- FAQ 1.02: What are C++ FAQs?
- FAQ 1.03: Who is the target audience for this book?
- FAQ 1.04: Is this a book about C++ per se?
- FAQ 1.05: Why do developers need a guidebook for C++ and OO technology?
- FAQ 1.06: What kind of guidance is given in the answers to these FAQs?
- FAQ 1.07: What is the electronic FAQ and why buy this book when the electronic FAQ is free?
- FAQ 1.08: Why should you buy this edition if you already have a copy of the first edition?
- FAQ 1.09: What conventions are used in this book?
- Chapter 2 Basic C++ Syntax and Semantics
- FAQ 2.01: What is the purpose of this chapter?
- FAQ 2.02: What are the basics of main()?
- FAQ 2.03: What are the basics of functions?
- FAQ 2.04: What are the basics of default parameters?
- FAQ 2.05: What are the basics of local (auto) objects?
- FAQ 2.06: What are the basics of constructing objects using explicit parameters?
- FAQ 2.07: What are the basics of dynamically allocated (new) objects?
- FAQ 2.08: What are the basics of local objects within inner scopes?
- FAQ 2.09: What are the basics of passing objects by reference?
- FAQ 2.10: What are the basics of passing objects by value?
- FAQ 2.11: What are the basics of passing objects by pointer?
- FAQ 2.12: What are the basics of stream output?
- FAQ 2.13: What are the basics of stream input?
- FAQ 2.14: What are the basics of using classes that contain overloaded operators?
- FAQ 2.15: What are the basics of using container classes?
- FAQ 2.16: What are the basics of creating class header files?
- FAQ 2.17: What are the basics of defining a class?
- FAQ 2.18: What are the basics of defining member functions?
- FAQ 2.19: What are the basics of adding a constructor to a class?.
- FAQ 2.20: What are the basics of adding a destructor to a class?
- FAQ 2.21: What are the basics of defining a class that contains a pointer to an object allocated from the heap?
- FAQ 2.22: What are the basics of global objects?
- FAQ 2.23: What are the basics of throwing and catching exceptions?
- FAQ 2.24: What are the basics of inheritance and dynamic binding?
- Chapter 3 Understanding the Management Perspective
- FAQ 3.01: What is the purpose of this chapter?
- FAQ 3.02: What is the core message of this chapter (and this book)?
- FAQ 3.03: Why are the managers in charge rather than the developers who understand technology?
- FAQ 3.04: How can someone manage something they don't understand?
- FAQ 3.05: What is the most common mistake on C++ and OO projects?
- FAQ 3.06: What's the "Software Peter Principle"?
- FAQ 3.07: Should an organization use OO on all its projects?
- FAQ 3.08: Can OO be ignored until it goes away?
- FAQ 3.09: What OO language is best?
- FAQ 3.10: What is the right approach to processes and tools?
- FAQ 3.11: What is the right approach with off-the-shelf class libraries and frameworks?
- Chapter 4 The Architectural Perspective
- FAQ 4.01: What is the purpose of this chapter?
- FAQ 4.02: Why is software architecture important?
- FAQ 4.03: What should the architecture be based on, the problem being solved or the problem domain?
- FAQ 4.04: Should the software architecture be based on the policy of the problem?
- FAQ 4.05: Do customers ever change their requirements?
- FAQ 4.06: Are stable requirements desirable?
- FAQ 4.07: What is the key to planning for change?
- FAQ 4.08: What is a framework?
- FAQ 4.09: What is the "inversion of control" exhibited by frameworks?
- FAQ 4.10: What is an extensible, domain-specific framework?.
- FAQ 4.11: What characteristics make a framework extensible yet domain-specific?
- FAQ 4.12: What happens if the domain analysis is incorrect?
- FAQ 4.13: How much effort should be expended to support change-that is, how much is extensibility worth?
- FAQ 4.14: How does an architect make the software architecture flexible?
- FAQ 4.15: What is the secret to achieving reuse?
- Part II: Object-Oriented Design
- Chapter 5 Object-Oriented Fundamentals
- FAQ 5.01: What is the purpose of this chapter?
- FAQ 5.02: Why is the world adopting OO technology?
- FAQ 5.03: What are some of the benefits of using C++ for OO programming?
- FAQ 5.04: What are the fundamental concepts of object-oriented technology?
- FAQ 5.05: Why are classes important?
- FAQ 5.06: What is an object?
- FAQ 5.07: What are the desirable qualities of an object?
- FAQ 5.08: How are classes better than the three basic building blocks of procedural software?
- FAQ 5.09: What is the purpose of composition?
- FAQ 5.10: What is the purpose of inheritance?
- FAQ 5.11: What are the advantages of polymorphism and dynamic binding?
- FAQ 5.12: How does OO help produce flexible and extensible software?
- FAQ 5.13: How can old code call new code?
- FAQ 5.14: What is an abstraction and why is it important?
- FAQ 5.15: Should abstractions be user-centric or developer-centric?
- FAQ 5.16: What's the difference between encapsulation and abstraction?
- FAQ 5.17: What are the consequences of encapsulating a bad abstraction?
- FAQ 5.18: What's the value of separating interface from implementation?
- FAQ 5.19: How can separating interface from implementation improve performance as well as flexibility?
- FAQ 5.20: What is the best way to create a good interface to an abstraction?
- FAQ 5.21: How are get/set member functions related to poorly designed interfaces?.
- FAQ 5.22: Should there be a get and a set member function for each member datum?
- FAQ 5.23: Is the real purpose of a class to export data?
- FAQ 5.24: Should OO be viewed as data-centric?
- Chapter 6 Specification of Observable Behavior
- FAQ 6.01: What is the purpose of this chapter?
- FAQ 6.02: Should users of a member function rely on what the code actually does or on the specification?
- FAQ 6.03: What are the advantages of relying on the specification rather than the implementation?
- FAQ 6.04: What are advertised requirements and advertised promises?
- FAQ 6.05: How are the advertised requirements and advertised promises of the member functions specified?
- FAQ 6.06: Why are changes feared in development organizations that don't use specification?
- FAQ 6.07: How do developers determine if a proposed change will break existing code?
- FAQ 6.08: What are the properties of a substitutable (backward compatible) change in a specification?
- FAQ 6.09: How can it be shown that the implementation of a member function fulfills its specification?
- FAQ 6.10: Is it possible to keep the specification synchronized with the code?
- Chapter 7 Proper Inheritance
- FAQ 7.01: What is proper inheritance?
- FAQ 7.02: What are the benefits of proper inheritance?
- FAQ 7.03: What is improper inheritance?
- FAQ 7.04: Isn't the difference between proper and improper inheritance obvious?
- FAQ 7.05: Is substitutability based on what the code does or what the specification promises the code will do?
- FAQ 7.06: Is it proper to revoke (hide) an inherited public: member function?
- FAQ 7.07: What is specialization?
- FAQ 7.08: What do subsets have to do with proper inheritance?
- Chapter 8 Detecting and Correcting Improper Inheritance
- FAQ 8.01: Can improper inheritance wreck a project?.
- FAQ 8.02: What's the best way to learn how to avoid improper inheritance?
- FAQ 8.03: Is intuition a reliable guide to understanding proper inheritance?
- FAQ 8.04: Is an Ostrich a kind-of Bird?
- FAQ 8.05: Should an overridden virtual function throw an exception?
- FAQ 8.06: Can an overridden virtual function be a no-op?
- FAQ 8.07: Why does C++ make it so hard to fix the Ostrich/Bird dilemma?
- FAQ 8.08: Should Circle inherit from Ellipse?
- FAQ 8.09: What can be done about the asymmetric-circle dilemma?
- FAQ 8.10: What is the one issue in these FAQs that doesn't seem to die?
- FAQ 8.11: Should Stack inherit from List?
- FAQ 8.12: Is code reuse the main purpose of inheritance?
- FAQ 8.13: Is container-of-thing a kind-of container-of-anything?
- FAQ 8.14: Is bag-of-apple a kind-of bag-of-fruit, assuming bag-of-fruit allows the insertion of any kind-of fruit?
- FAQ 8.15: Is parking-lot-for-cars a kind-of parking-lot-for-arbitrary-vehicles (assuming parking-lot-for-vehicles allows parking any kind-of vehicle)?
- FAQ 8.16: Is array-of Derived a kind-of array-of Base?
- FAQ 8.17: Does the fact that an array-of Derived can be passed as an array-of Base mean that arrays are bad?
- Chapter 9 Error Handling Strategies
- FAQ 9.01: Is error handling a major source of fundamental mistakes?
- FAQ 9.02: How should runtime errors be handled in C++?
- FAQ 9.03: What happens to objects in stack frames that become unwound during the throw / catch process?
- FAQ 9.04: What is an exception specification?
- FAQ 9.05: What are the disadvantages of using return codes for error handling?
- FAQ 9.06: What are the advantages of throw...catch?
- FAQ 9.07: Why is it helpful to separate normal logic from exception handling logic?
- FAQ 9.08: What is the hardest part of using exception handling?
- FAQ 9.09: When should a function throw an exception?.
- FAQ 9.10: What is the best approach for the hierarchy of exception objects?.
- Notes:
- Includes index.
- Description based on publisher supplied metadata and other sources.
- ISBN:
- 9786612568992
- 9780672333804
- 0672333805
- 9781282568990
- 128256899X
- 9780672333682
- 0672333686
- OCLC:
- 1027201811
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.