Buy Ruminations on C++ Book by Andrew Koenig - Bookswagon
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Home > Computing and Information Technology > Computer programming / software engineering > Programming and scripting languages: general > Ruminations on C++: A Decade of Programming Insight and Experience
Ruminations on C++: A Decade of Programming Insight and Experience

Ruminations on C++: A Decade of Programming Insight and Experience


     0     
5
4
3
2
1



Out of Stock


Notify me when this book is in stock
X
About the Book

Ruminations on C++ concentrates on the key C++ ideas and programming techniques--skimming the cream--to let you understand the "why" and not just the "how" of C++ programming. You need not be an expert C++ programmer to find solid fodder here, yet even experts need not fear overgrazing: You will find something worth chewing on in every chapter. This should be your next C++ book, because it *covers a broad range of C++ ideas and techniques, from detailed code examples to design principles and philosophy *shows how to think about programming in C++, not just how to follow rules *explains the motivation behind its examples; sometimes even solving the same problem in two different ways *covers both object-oriented programming and generic programming *explains the ideas behind the Standard Template Library, which is the most important recent innovation in C++. This book comes to you from two people who started using C++ when its entire user community could still fit in one room. Both of them have contributed significantly to the evolution of C++.

Table of Contents:
Preface. Prelude. First Try. Doing it without Classes. Why was it Easier in C++? A Bigger Example. Conclusion. I. MOTIVATION. 1. Why I Use C++. The Problem. History and Context. Automatic Software Distribution. Enter C++. Recycled Software. Postscript. 2. Why I Work on C++. The Success of Small Projects. Abstraction. Machines Should Work for People. 3. Living in the Real World. II. CLASSES aND INHERITANCE. 4. Checklist for Class Authors. 5. Surrogate Classes. The Problem. The Classical Solution. Virtual Copy Functions. Defining a Surrogate Class. Summary. 6. Handles: Part 1. The Problem. A Simple Class. Attaching a Handle. Getting at the Object. Simple Implementation. Use-Counted Handles. Copy on Write. Discussion. 7. Handles: Part 2. Review. Separating the use Count. Abstraction of use Counts. Access Functions and Copy on Write. Discussion. 8. An Object-Oriented Program. The Problem. An Object-Oriented Solution. Handle Classes. Extension 1: New Operations. Extension 2: New Node Types. Reflections. 9. Analysis of a Classroom Exercise: Part 1. The Problem. Designing the Interface. A Few Loose Ends. Testing the Interface. Strategy. Tactics. Combining Pictures. Conclusion. 10. Analysis of a Classroom Exercise: Part 2. Strategy. Exploiting the Structure. Conclusion. 11. When not to use Virtual Functions. The Case For. The Case Against. Destructors are Special. Summary. III. TEMPLATES. 12. Designing a Container Class. What Does it Contain? What Does Copying the Container Mean? How Do You Get at Container Elements? How Do You Distinguish Reading from Writing? How Do You Handle Container Growth? What Operations Does the Container Provide? What Do You Assume about the Container Element Type? Containers and Inheritance. Designing an Arraylike Class. 13. Accessing Container Elements. Imitating a Pointer. Getting at the Data. Remaining Problems. Pointer to Const Array. Useful Additions. 14. Iterators. Completing the Pointer Class. What is an Iterator? Deleting an Element. Deleting the Container. Other Design Considerations. Discussion. 15. Sequences. The State of the Art. A Radical Old Idea. Well, Maybe a Few Extras. Example of Use. Maybe a Few More. Food for Thought. 16. Templates as Interfaces. The Problem. The First Example. Separating the Iteration. Iterating Over Arbitrary Types. Adding Other Types. Abstracting the Storage Technique. The Proof of the Pudding. Summary. 17. Templates and Generic Algorithms. A Specific Example. Generalizing the Element Type. Postponing the Count. Address Independence. Searching a Nonarray. Discussion. 18. Generic Iterators. A Different Algorithm. Categories of Requirements. Input Iterators. Output Iterators. Forward Iterators. Bidirectional Iterators. Random-Access Iterators. Inheritance? Performance. Summary. 19. Using Generic Iterators. Iterator Types. Virtual Sequences. An Output-Stream Iterator. An Input-Stream Iterator. Discussion. 20. Iterator Adaptors. An Example. Directional Asymmetry. Consistency and Asymmetry. Automatic Reversal. Discussion. 21. Function Objects. An Example. Function Pointers. Function Objects. Function-Object Templates. Hiding Intermediate Types. One Type Covers Many. Implementation. Discussion. 22. Function Adaptors. Why Function Objects? Function Objects For Built-In Operators. Binders. A Closer Look. Interface Inheritance. Using These Classes. Discussion. IV. LIBRARIES. 23. Libraries in Everyday Use. The Problem. Understanding the Problem—Part 1. Implementation—Part 1. Understanding the Problem—Part 2. Implementation—Part 2. Discussion. 24. An Object Lesson in Library-Interface Design. Complications. Improving the Interface. Taking Stock. Writing the Code. Conclusion. 25. Library Design is Language Design. Character Strings. Memory Exhaustion. Copying. Hiding the Implementation. Default Constructor. Other Operations. Substrings. Conclusion. 26. Language Design is Library Design. Abstract Data Types. Libraries and Abstract Data Types. Memory Allocation. Memberwise Assignment and Initialization. Exception Handling. Summary. V. TECHNIQUE. 27. Classes that Keep Track of Themselves. Design of a Trace Class. Creating Dead Code. Generating Audit Trails for Objects. Verifying Container Behavior. Summary. 28. Allocating Objects in Clusters. The Problem. Designing the Solution. Implementation. Enter Inheritance. Summary. 29. Applicators, Manipulators, and Function Objects. The Problem. A Solution. A Different Solution. Multiple Arguments. An Example. Abbreviations. Musings. Historical Notes, References, and Acknowledgments. 30. Decoupling Application Libraries from Input-Output. The Problem. Solution 1: Trickery and Brute Force. Solution 2: Abstract Output. Solution 3: Trickery without Brute Force. Remarks. VI. WRAPUP. 31. Simplicity through Complexity. The World is Complicated. Complexity Becomes Hidden. Computers are no Different. Computers Solve Real Problems. Class Libraries and Language Semantics. Making Things Easy is Hard. Abstraction and Interface. Conservation of Complexity. 32. What Do You Do After You Say Hello World? Find the Local Experts. Pick a Tool Kit and Become Comfortable with it. Some Parts of C are Essential. But Others are not. Set Yourself a Series of Problems. Conclusion. Index. 0201423391T04062001

About the Author :
Andrew Koenig is a member of the Large-Scale Programming Research Department at AT&T's Shannon Laboratory, and the Project Editor of the C++ standards committee. A programmer for more than 30 years, 15 of them in C++, he has published more than 150 articles about C++, and speaks on the topic worldwide. Barbara E. Moo is an independent consultant with 20 years' experience in the software field. During her nearly 15 years at AT&T, she worked on one of the first commercial products ever written in C++, managed the company's first C++ compiler project, and directed the development of AT&T's award-winning WorldNet Internet service business. 0


Best Sellers


Product Details
  • ISBN-13: 9780201423396
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Addison Wesley
  • Height: 157 mm
  • No of Pages: 400
  • ISBN-10: 0201423391
  • Publisher Date: 24 Sep 1996
  • Binding: Paperback
  • Language: English
  • Sub Title: A Decade of Programming Insight and Experience


Similar Products

Add Photo
Add Photo

Customer Reviews

REVIEWS      0     
Click Here To Be The First to Review this Product
Ruminations on C++: A Decade of Programming Insight and Experience
Pearson Education (US) -
Ruminations on C++: A Decade of Programming Insight and Experience
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

Ruminations on C++: A Decade of Programming Insight and Experience

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!