C++ in One Hour a Day, Sams Teach Yourself
439 kr
Beställningsvara. Skickas inom 7-10 vardagar. Fri frakt för medlemmar vid köp för minst 249 kr.
Learn C++ programming at your own pace—Covers modern C++ 20
Starting with one hour a day, you can gain all the skills you need to begin programming in C++. This complete tutorial will help you quickly master the basics of object-oriented programming and teach you advanced C++ language features and concepts. Fully updated for the C++20 standard, this practical book is designed to help you write C++ code that's faster, simpler, and more reliable and master the fundamentals of C++ and object-oriented programming.
- No programming experience required: start writing well-organized, efficient C++ programs quickly!
- Apply proven Do's and Don'ts to leverage best practices and avoid pitfalls from day one
- Test your knowledge and expertise with focused exercises after every lesson
- Simplify your code using automatic type deduction and other features
- Accelerate learning using nearly 300 code samples explained within
- Preview improvements expected in C++23
Lessons
Part I - The Basics: Using Variables, Declaring Constants; Arrays and Strings; Expressions, Statements, and Operators; Controlling Program Flow; Functions; Pointers and References
Part II - Fundamentals of Object-Oriented C++ Programming: Classes and Objects; Implementing Inheritance; Polymorphism; Operator Types and Operator Overloading; Casting Operators; Macros and Templates
PART III - Learning the Standard Template Library (STL): The STL String Class; STL Dynamic Array Classes; STL list and forward_list; STL set and multiset; STL map and multimap
PART IV: Lambda Expressions and STL Algorithms: Function Objects; Lambda Expressions;
Produktinformation
- Utgivningsdatum2022-03-31
- Mått180 x 230 x 46 mm
- Vikt1 440 g
- FormatHäftad
- SpråkEngelska
- SerieSams Teach Yourself
- Antal sidor848
- Upplaga9
- FörlagPearson Education
- ISBN9780137334681
Tillhör följande kategorier
Siddhartha Rao is the vice president in charge of product security at SAP SE, the world’s most trustworthy supplier of enterprise software and cloud services. A software engineer at heart, Siddhartha is convinced that the rapid evolution of C++ has powered this age of machine learning and artificial intelligence. Features introduced by C++20 enable you to program simpler yet more powerful applications than ever before. In authoring this book, Siddhartha has taken care to ensure that this book’s nearly 300 compiling code examples are accompanied by detailed analyses of how they work.Siddhartha looks forward to your comments, reviews, and feedback!
- Introduction xxviPART I: The BasicsLesson 1: Getting Started A Brief History of C++Connection to C Advantages of C++Evolution of the C++ StandardWho Uses Programs Written in C++?Programming a C++ ApplicationSteps in Building an Executable Analyzing Errors and DebuggingIntegrated Development Environments Programming Your First C++ ApplicationBuilding and Executing Your First C++ ApplicationUnderstanding Compiler Errors What’s New in C++20?Summary Q&A Workshop Quiz Exercises Lesson 2: The Anatomy of a C++ Program Parts of the Hello World ProgramPreprocessor Directive #includeThe Body of Your Program: main()Returning a Value The Concept of Namespaces Comments in C++ CodeFunctions in C++Basic Input Using std::cin and Output Using std::coutSummary Q&AWorkshop Quiz Exercises Lesson 3: Using Variables, Declaring ConstantsWhat Is a Variable?Memory and Addressing in Brief Declaring Variables to Access and Use MemoryDeclaring and Initializing Multiple Variables of a Type Understanding the Scope of a Variable Global Variables Naming Conventions Common Compiler-Supported C++ Variable TypesUsing Type bool to Store Boolean Values Using Type char to Store Character ValuesThe Concept of Signed and Unsigned Integers Signed Integer Types short, int, long, and long longUnsigned Integer Types unsigned short, unsigned int, unsigned long, and unsigned long longAvoiding Overflow Errors by Selecting Correct Data Types Floating-Point Types float and doubleDetermining the Size of a Variable by Using sizeof()Avoid Narrowing Conversion Errors by Using List InitializationAutomatic Type Inference Using auto Using typedef to Substitute a Variable’s Type What Is a Constant?Literal Constants Declaring Variables as Constants Using constConstant Expressions Using constexprC++20 Immediate Functions Using consteval EnumerationsScoped Enumerations Defining Constants by Using #defineKeywords You Cannot Use as Variable or Constant NamesSummaryQ&AWorkshop Quiz Exercises Lesson 4: Managing Arrays and StringsWhat Is an Array?The Need for Arrays Declaring and Initializing Static Arrays How Data Is Stored in an ArrayAccessing Data Stored in an Array Modifying Data Stored in an ArrayMultidimensional Arrays Declaring and Initializing Multidimensional Arrays Accessing Elements in a Multidimensional ArrayDynamic Arrays C-Style Character StringsC++ Strings: Using std::string Summary Q&AWorkshop Quiz Exercises Lesson 5: Working with Expressions, Statements, and OperatorsStatements Compound Statements, or Blocks Using Operators The Assignment Operator (=)Understanding l-Values and r-ValuesOperators to Add (+), Subtract (-), Multiply (*), Divide (/), and Modulo Divide (%) Operators to Increment (++) and Decrement (--) To Postfix or to Prefix? Equality Operators (== and !=)Relational Operators C++20 Three-Way Comparison Operator (<=>) Logical Operations NOT, AND, OR, and XORUsing C++ Logical Operators NOT (!), AND (&&), and OR (||)Bitwise NOT (~), AND (&), OR (|), and XOR (^) Operators Bitwise Right Shift (>>) and Left Shift (<<) OperatorsCompound Assignment Operators Using the sizeof() Operator to Determine the Memory Occupied by a VariableOperator Precedence and Associativity Summary Q&AWorkshop Quiz Exercises Lesson 6: Controlling Program Flow Conditional Execution Using if.elseConditional Programming Using if.else Conditional Execution of Statements Within a Block Nested if Statements Conditional Processing Using switch-case Conditional Execution Using the ?: Operator Getting Code to Execute in Loops A Rudimentary Loop Using goto The while LoopThe do.while Loop The for Loop The Range-Based for Loop Modifying Loop Behavior Using continue and break Loops That Don’t End: Infinite Loops Controlling Infinite Loops Programming Nested Loops Using Nested Loops to Walk a Multidimensional Array Using Nested Loops to Calculate Fibonacci NumbersSummary Q&A Workshop Quiz Exercises Lesson 7: Organizing Code with Functions The Need for Functions What Is a Function Prototype? What Is a Function Definition? What Is a Function Call, and What Are Arguments? Programming a Function with Multiple Parameters Programming Functions with No Parameters or No Return Values Function Parameters with Default Values Recursion: Functions That Invoke Themselves Functions with Multiple Return Statements Using Functions to Work with Different Forms of DataOverloading Functions Passing an Array of Values to a Function Passing Arguments by Reference How Function Calls Are Handled by the MicroprocessorInline Functions Automatic Return Type Deduction Lambda Functions Summary Q&A Workshop Quiz Exercises Lesson 8: Pointers and References ExplainedWhat Is a Pointer?Declaring a Pointer Determining the Address of a Variable by Using the Reference Operator (&) Using Pointers to Store Addresses Accessing Pointed Data Using the Dereference Operator (*) What Is the Size of a Pointer?Dynamic Memory Allocation Using the Operators new and delete to Allocate and ReleaseMemory Dynamically Effects of the Increment (++) and Decrement (--) Operators on Pointers Using the const Keyword on PointersPassing Pointers to Functions Similarities Between Arrays and Pointers Common Programming Mistakes When Using Pointers Memory Leaks Pointers Pointing to Invalid Memory Locations Dangling Pointers (Also Called Stray or Wild Pointers) Checking Whether an Allocation Request Using new SucceededPointer Programming Best Practices What Is a Reference? What Makes References Useful? Using the Keyword const on References Passing Arguments by Reference to Functions Summary Q&A Workshop Quiz Exercises PART II: Fundamentals of Object-Oriented C++ ProgrammingLesson 9: Classes and Objects The Concept of Classes and Objects Declaring a Class An Object as an Instance of a ClassAccessing Members by Using the Dot Operator (.) Accessing Members by Using the Pointer Operator (->) The Keywords public and private Abstraction of Data via the Keyword private Constructors Declaring and Implementing a Constructor When and How to Use Constructors Overloading Constructors A Class Without a Default Constructor Constructor Parameters with Default Values Constructors with Initialization ListsDestructor Declaring and Implementing a DestructorWhen and How to Use a Destructor The Copy Constructor Shallow Copying and Associated Problems Ensuring a Deep Copy Using a Copy Constructor Using Move Constructors to Improve Performance Different Uses of Constructors and the DestructorA Class That Does Not Permit Copying A Singleton Class That Permits a Single Instance A Class That Prohibits Instantiation on the StackUsing Constructors to Convert Types The this Pointer Using sizeof() with a Class The Keyword struct and Its Differences from class Declaring a friend of a class Union: A Special Data Storage Mechanism Declaring a Union Where Would You Use a Union?Using Aggregate Initialization on Classes and structs constexpr with Classes and Objects Summary Q&A WorkshopQuiz ExercisesLesson 10: Implementing InheritanceBasics of InheritanceInheritance and DerivationC++ Syntax of DerivationThe Access Specifier Keyword protected Base Class Initialization: Passing Parameters to the Base Class A Derived Class Overriding the Base Class’s Methods Invoking Overridden Methods of a Base Class Invoking Methods of a Base Class in a Derived Class A Derived Class Hiding the Base Class’s Methods Order of Construction Order of Destruction Private Inheritance Protected Inheritance The Problem of Slicing Multiple Inheritance Avoiding Inheritance Using final Summary Q&A Workshop Quiz Exercises Lesson 11: PolymorphismBasics of Polymorphism Need for Polymorphic Behavior Polymorphic Behavior Implemented Using Virtual Functions Need for Virtual DestructorsHow Do Virtual Functions Work? Understanding the Virtual Function Table Abstract Base Classes and Pure Virtual Functions Using Virtual Inheritance to Solve the Diamond Problem Using the Specifier override to Indicate the Intention to OverrideUsing final to Prevent Function Overriding Virtual Copy Constructors? Summary Q&A Workshop Quiz Exercises Lesson 12: Operator Types and Operator OverloadingWhat Are Operators in C++?Unary Operators Unary Increment (++) and Decrement (--) Operators Conversion Operators The Dereference Operator (*) and Member Selection Operator (->) Binary Operators The Binary Addition (a+b) and Subtraction (a-b) Operators The Addition Assignment (+=) and Subtraction Assignment (-=) Operators The Equality (==) and Inequality (!=) Operators The <, >, <=, and >= Operators The C++20 Three-Way Comparison Operator (<=>) The Copy Assignment Operator (=) The Subscript Operator ([]) The Function Operator (()) The Move Constructor and Move Assignment Operator for High-Performance Programming The Problem of Unwanted Copy Steps Declaring a Move Constructor and Move Assignment Operator User-Defined Literals Operators That Cannot Be Overloaded Summary Q&A Workshop Quiz Exercises Lesson 13: Casting OperatorsThe Need for Casting Why C-Style Casts Are Not Popular with Some C++ Programmers The C++ Casting Operators Using static_cast Using dynamic_cast and Runtime Type Identification Using reinterpret_cast Using const_cast Problems with the C++ Casting Operators Summary Q&A Workshop Quiz Exercises Lesson 14: An Introduction to Macros and TemplatesThe Preprocessor and the Compiler Using the Macro #define to Define Constants Using Macros for Protection Against Multiple Inclusion Using #define to Write Macro Functions Why All the Parentheses?Using the assert Macro to Validate ExpressionsAdvantages and Disadvantages of Using Macro Functions An Introduction to Templates Template Declaration Syntax The Different Types of Template Declarations Template Functions Templates and Type Safety Template Classes Declaring Templates with Multiple Parameters Declaring Templates with Default Parameters Sample Template Class: HoldsPairTemplate Instantiation and Specialization Template Classes and static Members Variable Templates Using static_assert to Perform Compile-Time ChecksUsing Templates in Practical C++ Programming Summary Q&A Workshop Quiz ExercisesPART III: Learning the Standard Template Library (STL)Lesson 15: An Introduction to the Standard Template LibrarySTL Containers Sequential Containers Associative Containers Container Adapters STL Iterators STL Algorithms Interaction Between Containers and Algorithms Using Iterators Using the Keyword auto to Let a Compiler Define Type Choosing the Right Container STL String ClassesSummary Q&A Workshop Quiz Lesson 16: The STL String ClassThe Need for String Manipulation Classes Working with the STL string Class Instantiating the STL string Class and Making Copies Accessing Character Contents of std::string Concatenating One String to Another Finding a Character or Substring in a String Truncating an STL String String Reversal String Case Conversion Template-Based Implementation of an STL String operator ""s in std::stringUsing std::string_view (Amended in C++20) Summary Q&A Workshop Quiz ExercisesLesson 17: STL Dynamic Array ClassesThe Characteristics of std::vector Typical Vector Operations Instantiating a Vector Inserting Elements at the End of a Vector by Using push_back() List Initialization Inserting Elements at a Given Position by Using insert() Accessing Elements in a Vector by Using Array Semantics Accessing Elements in a Vector by Using Pointer Semantics Removing Elements from a Vector Understanding the Concepts of Size and CapacityThe STL deque Class Summary Q&A WorkshopQuiz ExercisesLesson 18: STL list and forward_listThe Characteristics of std::list Basic list Operations Instantiating a std::list Object Inserting Elements at the Front or Back of a List Inserting Elements in the Middle of a List Erasing Elements from a ListReversing and Sorting Elements in a List Reversing Elements by Using list::reverse()Sorting Elements Sorting and Removing Elements from a List That Contains Instances of a Class std::forward_list Summary Q&A Workshop Quiz Exercises Lesson 19: STL set and multiset An Introduction to STL Set Classes Basic STL set and multiset Operations Instantiating a std::set Object Inserting Elements in a Set or Multiset Finding Elements in an STL set or multiset Container Erasing Elements in an STL set or multiset ContainerPros and Cons of Using STL set and multisetSTL Hash Set Implementation: std::unordered_set and std::unordered_multiset Summary Q&A Workshop Quiz ExercisesLesson 20: STL map and multimapAn Introduction to STL Map Classes Basic std::map and std::multimap Operations Instantiating std::map or std::multimapInserting Elements in an STL Map or Multimap Finding Elements in an STL map ContainerFinding Elements in an STL multimap Container Erasing Elements from an STL map or multimap Container Supplying a Custom Sort Predicate STL’s Hash Table–Based Key/Value ContainerHow Hash Tables Work Using unordered_map and unordered_multimapSummary Q&A WorkshopQuiz ExercisesPART IV: Lambda Expressions and STL AlgorithmsLesson 21: Understanding Function ObjectsFunction Objects and Predicates Typical Applications of Function Objects Unary FunctionsUnary Predicates Binary Functions Binary PredicatesSummary Q&A WorkshopQuiz ExercisesLesson 22: Lambda ExpressionsWhat Is a Lambda Expression? How to Define a Lambda Expression Capturing Variables ParametersReturn TypesA Lambda Expression for a Unary FunctionA Lambda Expression for a Unary Predicate A Lambda Expression with State via Capture Lists ([.]) A Lambda Expression for a Binary Function A Lambda Expression for a Binary PredicateSummary Q&A WorkshopQuiz ExercisesLesson 23: STL AlgorithmsWhat Are STL Algorithms?Classification of STL AlgorithmsNon-mutating AlgorithmsMutating AlgorithmsUsage of STL Algorithms Finding Elements, Given a Value or a ConditionCounting Elements Given a Value or a ConditionSearching for an Element or a Range in a Collection Initializing Elements in a Container to a Specific Value Using std::generate() to Initialize Elements to a Value Generated at Runtime Processing Elements in a Range by Using for_each()Performing Transformations on a Range by Using std::transform() Copy and Remove Operations Replacing Values and Replacing Elements Given a Condition Sorting and Searching in a Sorted Collection and Erasing Duplicates Partitioning a Range Inserting Elements in a Sorted Collection Performing Fold Operations Using std::accumulate() in C++20 C++20 Constrained Algorithms Summary Q&A Workshop Quiz Exercises Lesson 24: Adaptive Containers: Stack and QueueThe Behavioral Characteristics of Stacks and QueuesStacks Queues Using the STL stack ClassInstantiating a Stack Stack Member FunctionsInsertion and Removal at the Top, Using push() and pop()Using the STL queue ClassInstantiating a Queue Member Functions of the queue ClassInsertion at the End and Removal at the Beginning of a Queue via push() and pop()Using the STL Priority QueueInstantiating the priority_queue Class Member Functions of priority_queue Insertion at the End and Removal at the Beginning of a Priority Queue via push() and pop() Summary Q&A Workshop Quiz Exercises Lesson 25: Working with Bit Flags Using the STLThe bitset Class Instantiating std::bitsetUsing std::bitset and Its Members Useful Operators in std::bitset std::bitset Member Methods The vector Class Instantiating vector vector Functions and OperatorsSummary Q&A Workshop Quiz Exercises PART V: Advanced C++ ConceptsLesson 26: Understanding Smart PointersWhat Are Smart Pointers? The Problem with Using Conventional (Raw) Pointers How Do Smart Pointers Help? How Are Smart Pointers Implemented? Types of Smart Pointers Deep Copy Copy on Write Reference-Counted Smart Pointers Reference-Linked Smart Pointers Destructive CopyUsing std::unique_ptrPopular Smart Pointer LibrariesSummary Q&A WorkshopQuiz ExercisesLesson 27: Using Streams for Input and OutputThe Concept of StreamsImportant C++ Stream Classes and ObjectsUsing std::cout for Writing Formatted Data to the Console Changing the Display Number Format by Using std::cout Aligning Text and Setting Field Width by Using std::coutUsing std::cin for Input Using std::cin for Input into a Plain Old Data Type Using std::cin::get for Input into the char* Buffer Using std::cin for Input into std::stringUsing std::fstream for File Handling Opening and Closing a File Using open() and close() Creating and Writing a Text File by Using open() and the Operator << Reading a Text File by Using open() and the Operator >> Writing to and Reading from a Binary File Using std::stringstream for String Conversions Summary Q&A Workshop Quiz Exercises Lesson 28: Exception HandlingWhat Is an Exception? What Causes Exceptions? Implementing Exception Safety via try and catch Using catch(.) to Handle All Exceptions Catching Exceptions of a Type Throwing Exceptions of a Type by Using throw How Exception Handling Works Class std::exception A Custom Exception Class Derived from std::exception Summary Q&A Workshop Quiz Exercises Lesson 29: C++20 Concepts, Ranges, Views, and AdaptorsConcepts Using Concepts Provided by the Standard Library Defining Custom Concepts by Using the Keyword requires Using Concepts with Classes and Objects The Ranges Library, Views, and Adaptors Views and Adaptors Adaptors Provided by the Ranges LibraryCombining Multiple Adaptors Summary Q&A Workshop Quiz Exercises Lesson 30: C++20 ThreadsMultithreading What Is a Thread?Why Program Multithreaded Applications?Using the C++20 Thread Library How Can Threads Transact Data? Using Mutexes and Semaphores to Synchronize ThreadsSummary Q&A WorkshopExerciseLesson 31: C++20 Modules and C++23Modules The Problem with #include C++20 Modules Programming a Module Consuming a Module Why import Module; Is Superior to the Preprocessor #include C++23 Expected Features Learning C++ Doesn’t Stop Here! Online DocumentationCommunities for Guidance and Help Summary Q&A Workshop Exercise PART VI: AppendixesAppendix A: Working with Numbers: Binary and Hexadecimal Appendix B: C++ Keywords Appendix C: Writing Great C++ Code Appendix D: ASCII Codes Appendix E: Answers 9780137334681 TOC 12/20/2021
Mer från samma serie
C Programming in One Hour a Day, Sams Teach Yourself
Bradley Jones, Peter Aitken, Dean Miller
379 kr
AngularJS, JavaScript, and jQuery All in One, Sams Teach Yourself
Brad Dayley, Brendan Dayley
389 kr
Sams Teach Yourself Adobe LiveMotion 2 in 24 Hours
Molly Holzschlag, Molly E. Holzschlag, Molly E Holzschlag
409 kr
HTML, CSS & JavaScript Web Publishing in One Hour a Day, Sams Teach Yourself
Laura Lemay, Rafe Colburn, Jennifer Kyrnin
389 kr
Du kanske också är intresserad av
AngularJS, JavaScript, and jQuery All in One, Sams Teach Yourself
Brad Dayley, Brendan Dayley
389 kr
HTML, CSS & JavaScript Web Publishing in One Hour a Day, Sams Teach Yourself
Laura Lemay, Rafe Colburn, Jennifer Kyrnin
389 kr