Beginning C++23: From Beginner to Pro, 7th Edition

  • 20h 24m
  • Ivor Horton, Peter Van Weert
  • Apress
  • 2023

Begin your programming journey with C++ , starting with the basics and progressing through step-by-step examples that will help you become a proficient C++ programmer. This book includes new features from the C++23 standard. All you need are Beginning C++23 and any recent C++ compiler and you'll soon be writing real C++ programs.

There is no assumption of prior programming knowledge. All language concepts that are explained in the book are illustrated with working program examples, and all chapters include exercises for you to test and practice your knowledge. Free source code downloads are provided for all examples from the text and solutions to the exercises.

This latest edition has been fully updated to the latest version of the language, C++23, and to all conventions and best practices of modern C++. This book also introduces elements of the C++ Standard Library that provide essential support for C++23. After completing this book, you will have the knowledge and skills needed to build your first C++ applications.

What You Will Learn

  • Begin programming with the C++23 standard
  • Carry out modular programming in C++
  • Work with arrays and loops, pointers and references, strings, and more
  • Write your own functions, types, and operators
  • Discover the essentials of object-oriented programming
  • Use overloading, inheritance, virtual functions, and polymorphism
  • Write generic function and class templates, and make them safer using concepts
  • Learn the ins and outs of containers, algorithms, and ranges
  • Use auto type declarations, exceptions, move semantics, lambda expressions, and much more

Who This Book Is For

Programmers new to C++ and those who may be looking for a refresh primer on C++ in general.

About the Author

Ivor Horton is self-employed in consultancy and writes programming tutorials. He is the author of many programming books. Ivor worked for IBM for many years and holds a bachelor's degree, with honors, in mathematics. Horton's experience at IBM includes programming in most languages (including assembler and high-level languages on a variety of machines), real-time programming, and designing and implementing real-time closed loop industrial control systems. He has extensive experience teaching programming to engineers and scientists (Fortran, PL/1, APL, etc.). Horton is an expert in mechanical, process, and electronic CAD systems; mechanical CAM systems; and DNC/CNC systems.

Peter Van Weert works for Danaher in its R&D unit for digital dentistry software, developing software for the dental practice of tomorrow. In his spare time, he has co-authored two books on C++ and two award-winning Windows 8 apps and is a regular expert speaker at, and board member of, the Belgian C++ Users Group. He is a software engineer whose main interests and expertise are application software development, programming languages, algorithms, and data structures.He received his master of science degree in computer science summa cum laude with congratulations of the Board of Examiners from the University of Leuven. In 2010, he completed his PhD thesis there on the design and efficient compilation of rule-based programming languages at the research group for declarative programming languages and artificial intelligence. During his doctoral studies, he was a teaching assistant for object-oriented programming (Java), software analysis and design, and declarative programming. After graduating, Peter worked at Nikon Metrology for more than six years on large-scale, industrial application software in the area of 3D laser scanning and point cloud inspection. He learned to master C++ and refactoring and debugging of very large code bases, and he gained further proficiency in all aspects of the software development process, including the analysis of functional and technical requirements, and agile and scrum-based project and team management.

In this Book

  • Basic Ideas
  • Introducing Fundamental Types of Data
  • Working with Fundamental Data Types
  • Making Decisions
  • Arrays and Loops
  • Pointers and References
  • Working with Strings
  • Defining Functions
  • Vocabulary Types
  • Function Templates
  • Modules and Namespaces
  • Defining Your Own Data Types
  • Operator Overloading
  • Inheritance
  • Polymorphism
  • Runtime Errors and Exceptions
  • Class Templates
  • Move Semantics
  • First-Class Functions
  • Containers and Algorithms
  • Constrained Templates and Concepts
SHOW MORE
FREE ACCESS