C++ FAQs

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 ar...

Full description

Bibliographic Details
Main Author: Cline, Marshall P. (-)
Other Authors: Lomow, Greg, Girou, Mike
Format: eBook
Language:Inglés
Published: Reading, Mass. : Addison-Wesley c1999.
Edition:2nd ed
Subjects:
See on Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009626979706719
Table of 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?.