Exploring C++20: The Programmer's Introduction to C++ (3rd Edition)
BenefitsIncludes bite-sized chunks that will help you learn thelanguage one step at a timeBuilds up from first principles with C++20 includedShows how to create sophisticated C++ applications of yourownSummaryDiscover everything you need to know about C++ in a logicalprogression of small lessons that you can work through as quicklyor as slowly as you need. This book divides C++ up into bite-sizedchunks that will help you learn the language one step at a time.Fully updated to include C++20, it assumes no familiarity withC++ or any other C-based language.Exploring C++20 acknowledges that C++ can be acomplicated language, so rather than baffle you with complexchapters explaining functions, classes, and statements in isolationyou’ll focus on how to achieve results. By learning a little bit ofthis and a little of that you’ll soon have amassed enough knowledgeto be writing non-trivial programs and will have built a solidfoundation of experience that puts those previously bafflingconcepts into context.In this fully-revised third edition of ExploringC++, you’ll learn how to use the standard library early in thebook. Next, you’ll work with operators, objects, and data-sourcesin increasingly realistic situations. Finally, you’ll start puttingthe pieces together to create sophisticated programs of your owndesign confident that you’ve built a firm base of experience fromwhich to grow.What You Will LearnGrasp the basics, including compound statements, modules, andmoreWork with custom types and see how to use themWrite useful algorithms, functions, and moreDiscover the latest C++ 20 features, including concepts,modules, and rangesApply your skills to projects that include a fixed-pointnumbers and body-mass index applicationsCarry out generic programming and apply it in a practicalprojectExploit multiple inheritance, traits/policies, overloadedfunctions, and metaprogrammingWho This Book Is ForExperienced programmers who may have little or no experiencewith C++ who want an accelerated learning guide to C++20 so theycan hit the ground running.Table of ContentsHoning Your ToolsReading C++ CodeInteger ExpressionsStringsSimple InputError MessagesMore LoopsFormatted OutputArrays and VectorsAlgorithms and RangesIncrement and DecrementConditions and LogicCompound StatementsIntroduction to File I/OThe Map Data StructureType SynonymsCharactersCharacter CategoriesCase-FoldingWriting FunctionsFunction ArgumentsUsing RangesUsing IteratorsUnnamed FunctionsOverloading Function NamesBig and Little NumbersVery Big and Very Little NumbersDocumentationProject 1: Body Mass IndexCustom TypesOverloading OperatorsCustom I/O OperatorsAssignment and InitializationWriting ClassesMore About Member FunctionsAccess LevelsUnderstanding Object-Oriented ProgrammingInheritanceVirtual FunctionsClasses and TypesDeclarations and DefinitionsModulesOld-Fashioned “Modules”Function ObjectsUseful AlgorithmsMore About IteratorsRanges, Views, and AdaptorsExceptionsMore OperatorsProject 2: Fixed-Point NumbersFunction TemplatesClass TemplatesTemplate SpecializationPartial Template SpecializationTemplate ConstraintsNames and NamespacesContainersLocales and FacetsInternational CharactersText I/OProject 3: Currency TypePointersRegular ExpressionsMoving Data with Rvalue ReferencesSmart PointersFiles and File NamesWorking with BitsEnumerationsMultiple InheritanceConcepts, Traits, and PoliciesNames, Namespaces, and TemplatesOverloaded Functions and OperatorsProgramming at Compile TimeProject 4: CalculatorAuthorsRay Lischner has a bachelor's degree incomputer science from Caltech and a master's in computer sciencefrom Oregon State University. He worked as a software developer fora dozen years, at big and small companies across the US, usingPL/I, C, C++, Delphi, Smalltalk, and various assembly languages onboth large and small systems. He has been self-employed as aconsultant, trainer, and author for the last ten years. Ray taughtcomputer science at Oregon State University for several years andspecialized in teaching introductory computer programming. Hetaught courses in C and C++ and software engineering.