Discovering Modern C++, 2nd Edition
- Length: 576 pages
- Edition: 2
- Language: English
- Publisher: Addison-Wesley Professional
- Publication Date: 2021-12-14
- ISBN-10: 0136677649
- ISBN-13: 9780136677642
- Sales Rank: #893624 (See Top 100 Books)
Write Powerful, Modern C++ Code for Scientific, Engineering, and Embedded Applications
Discovering Modern C++, Second Edition, will help you master valuable skills for programming with C++ at nearly every level, from “close to the hardware” to high-level abstractions.
Updated for C++17 and C++ 20, this intensive introduction teaches C++ using realistic examples from diverse technical problem domains. Drawing on extensive experience teaching C++ to physicists, mathematicians, engineers, and students, Peter Gottschling guides you smoothly to sophisticated approaches based on advanced features.
Whatever your programming experience, you’ll rapidly master increasingly powerful features, from lambdas to expression and variadic templates. Gottschling also shows you how to apply C++’s libraries: both the Standard Template Library (STL) and scientific libraries for arithmetic, linear algebra, differential equations, and graphs. Step by step, you’ll learn to write clear and expressive code using object orientation, generics, metaprogramming, and procedural techniques, and master all the abstractions you need to write high-quality, well-performing software.
- Quickly master core features: variables, operators, expressions, statements, functions, error handling, I/O, arrays, pointers, references, and more
- Make the most of classes and object-oriented programming, from constructors/destructors to operator overloading and multiple inheritance
- Apply advanced generic programming and template-based techniques
- Use C++’s libraries to write more robust and powerful code more quickly
- Explore metaprogramming in depth, and master cutting-edge optimization techniques
- Walk through representative scientific projects, and create your own
Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Cover Page About This eBook Halftitle Page Title Page Copyright Page Dedication Page Contents Preface Reasons to Learn C++ Reasons to Read This Book The Beauty and the Beast Languages in Science and Engineering Typographical Conventions Pearson’s Commitment to Diversity, Equity, and Inclusion Acknowledgments About the Author Chapter 1. C++ Basics 1.1 Our First Program 1.2 Variables 1.3 Operators 1.4 Expressions and Statements 1.5 Functions 1.6 Error Handling 1.7 I/O 1.8 Arrays, Pointers, and References 1.9 Structuring Software Projects 1.10 Exercises Chapter 2. Classes 2.1 Program for Universal Meaning, Not Technical Details 2.2 Members 2.3 Setting Values: Constructors and Assignments 2.4 Destructors 2.5 Method Generation Summary 2.6 Accessing Member Variables 2.7 Operator Overloading Design 2.8 Exercises Chapter 3. Generic Programming 3.1 Function Templates 3.2 Namespaces and Function Lookup 3.3 Class Templates 3.4 Type Deduction and Definition 3.5 Template Specialization 3.6 Non-Type Parameters for Templates 3.7 Functors 3.8 Lambda 3.9 Variable Templates 3.10 Programming with Concept(s) 3.11 Variadic Templates 3.12 Exercises Chapter 4. Libraries 4.1 Standard Template Library 4.2 Numerics 4.3 Meta-programming 4.4 Utilities 4.5 The Time Is Now 4.6 Concurrency 4.7 Scientific Libraries Beyond the Standard 4.8 Exercises Chapter 5. Meta-Programming 5.1 Let the Compiler Compute 5.2 Providing and Using Type Information 5.3 Expression Templates 5.4 Meta-Tuning: Write Your Own Compiler Optimization 5.5 Optimizing with Semantic Concepts 5.6 Turing Completeness 5.7 Exercises Chapter 6. Object-Oriented Programming 6.1 Basic Principles 6.2 Removing Redundancy 6.3 Multiple Inheritance 6.4 Dynamic Selection by Sub-typing 6.5 Conversion 6.6 Advanced Techniques 6.7 Exercises Chapter 7. Scientific Projects 7.1 Implementation of ODE Solvers 7.2 Creating Projects 7.3 Modules 7.4 Some Final Words Appendix A: Clumsy Stuff A.1 More Good and Bad Scientific Software A.2 Basics in Detail A.3 Real-World Example: Matrix Inversion A.4 Class Details A.5 Method Generation A.6 Template Details A.7 More on Libraries A.8 Dynamic Selection in Old Style A.9 More about Meta-Programming A.10 Linking to C Code Appendix B: Programming Tools B.1 g++ B.2 Debugging B.3 Memory Analysis B.4 gnuplot B.5 Unix, Linux, and Mac OS Appendix C: Language Definitions C.1 Value Categories C.2 Operator Overview C.3 Conversion Rules Bibliography Subject Index Code Snippets
Donate to keep this site alive
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.