C++ common knowledge : essential intermediate programming

Stephen C. Dewhurst

"We live in a time when, perhaps surprisingly, the best printed works on C++ are just now emerging. This is one of those works. Although C++ has been at the forefront of innovation and productivity in software development for more than two decades, it is only now being fully understood and utilized. This book is one of those rare contributions that can bear repeated study by practitioners and experts alike. It is not a treatise on the arcane or academic-rather it completes your understanding of things you think you know but will bite you sooner or later until you really learn them. Few people have mastered C++ and software design as well as Steve has; almost no one has such a level head as he when it comes to software development. He knows what you need to know, believe me. When he speaks, I always listen-closely. I invite you to do the same. You (and your customers) will be glad you did." -Chuck Allison, editor, The C++ Source"Steve taught me C++. This was back in 1982 or 1983, I think-he had just returned from an internship sitting with Bjarne Stroustrup inventor of C++ at Bell Labs. Steve is one of the unsung heroes of the early days, and anything Steve writes is on my A-list of things to read. This book is an easy read and collects a great deal of Steve's extensive knowledge and experience. It is highly recommended." -Stan Lippman, coauthor of C++ Primer, Fourth Edition"I welcome the self-consciously non-Dummies approach of a short, smart book." -Matthew P. Johnson, Columbia University"I agree with the author's assessment of the types of programmers. I have encountered the same types in my experience as a developer and a book like this will go far to help bridge their knowledge gap...I think this book complements other books, like Effective C++ by Scott Meyers. It presents everything in a concise and easy-to-read style." -Moataz Kamel, senior software designer, Motorola Canada"Dewhurst has written yet another very good book. This book should be required reading for people who are using C++ (and think that they already know everything in C++)." -Clovis Tondo, coauthor ofC++ Primer Answer BookWhat Every Professional C++ Programmer Needs to Know-Pared to Its Essentials So It Can Be Efficiently and Accurately Absorbed C++ is a large, complex language, and learning it is never entirely easy. But some concepts and techniques must be thoroughly mastered if programmers are ever to do professional-quality work. This book cuts through the technical details to reveal what is commonly understood to be absolutely essential. In one slim volume, Steve Dewhurst distills what he and other experienced managers, trainers, and authors have found to be the most critical knowledge required for successful C++ programming. It doesn't matter where or when you first learned C++. Before you take another step, use this book as your guide to make sure you've got it right! This book is for you if * You're no "dummy," and you need to get quickly up to speed in intermediate to advanced C++ * You've had some experience in C++ programming, but reading intermediate and advanced C++ books is slow-going * You've had an introductory C++ course, but you've found that you still can't follow your colleagues when they're describing their C++ designs and code * You're an experienced C or Java programmer, but you don't yet have the experience to develop nuanced C++ code and designs * You're a C++ expert, and you're looking for an alternative to answering the same questions from your less-experienced colleagues over and over again C++ Common Knowledge covers essential but commonly misunderstood topics in C++ programming and design while filtering out needless complexity in the discussion of each topic. What remains is a clear distillation of the essentials required for production C++ programming, presented in the author's trademark incisive, engaging style.

「Nielsen BookData」より


  • Preface xi Acknowledgments xvii A Note on Typographical Conventions xix Item 1: Data Abstraction 1 Item 2: Polymorphism 3 Item 3: Design Patterns 7 Item 4: The Standard Template Library 11 Item 5: References Are Aliases, Not Pointers 13 Item 6: Array Formal Arguments 17 Item 7: Const Pointers and Pointers to Const 21 Item 8: Pointers to Pointers 25 Item 9: New Cast Operators 29 Item 10: Meaning of a Const Member Function 33 Item 11: The Compiler Puts Stuff in Classes 37 Item 12: Assignment and Initialization Are Different 41 Item 13: Copy Operations 45 Item 14: Function Pointers 49 Item 15: Pointers to Class Members Are Not Pointers 53 Item 16: Pointers to Member Functions Are Not Pointers 57 Item 17: Dealing with Function and Array Declarators 61 Item 18: Function Objects 63 Item 19: Commands and Hollywood 67 Item 20: STL Function Objects 71 Item 21: Overloading and Overriding Are Different 75 Item 22: Template Method 77 Item 23: Namespaces 81 Item 24: Member Function Lookup 87 Item 25: Argument Dependent Lookup 89 Item 26: Operator Function Lookup 91 Item 27: Capability Queries 93 Item 28: Meaning of Pointer Comparison 97 Item 29: Virtual Constructors and Prototype 99 Item 30: Factory Method 103 Item 31: Covariant Return Types 107 Item 32: Preventing Copying 111 Item 33: Manufacturing Abstract Bases 113 Item 34: Restricting Heap Allocation 117 Item 35: Placement New 119 Item 36: Class-Specific Memory Management 123 Item 37: Array Allocation 127 Item 38: Exception Safety Axioms 131 Item 39: Exception Safe Functions 135 Item 40: RAII 139 Item 41: New, Constructors, and Exceptions 143 Item 42: Smart Pointers 145 Item 43: auto_ptr Is Unusual 147 Item 44: Pointer Arithmetic 149 Item 45: Template Terminology 153 Item 46: Class Template Explicit Specialization 155 Item 47: Template Partial Specialization 161 Item 48: Class Template Member Specialization 165 Item 49: Disambiguating with Typename 169 Item 50: Member Templates 173 Item 51: Disambiguating with Template 179 Item 52: Specializing for Type Information 183 Item 53: Embedded Type Information 189 Item 54: Traits 193 Item 55: Template Template Parameters 199 Item 56: Policies 205 Item 57: Template Argument Deduction 209 Item 58: Overloading Function Templates 213 Item 59: SFINAE 217 Item 60: Generic Algorithms 221 Item 61: You Instantiate What You Use 225 Item 62: Include Guards 229 Item 63: Optional Keywords 231 Bibliography 235 Index 237 Index of Code Examples 245 0321321928T02022005

「Nielsen BookData」より


書名 C++ common knowledge : essential intermediate programming
著作者等 Dewhurst, Stephen C
出版元 Addison-Wesley
刊行年月 c2005
ページ数 xix, 250 p.
大きさ 24 cm
ISBN 0321321928
NCID BA80018576
※クリックでCiNii Booksを表示
言語 英語
出版国 アメリカ合衆国