Learn C++ Quickly A Complete Beginner’s Guide to Learning C++, Even If You’re New to Programming CodeQuickly.org ISBN: 978-1-951791-62-9 Copyright © 2020 by Code Quickly ALL RIGHTS RESERVED No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning, or otherwise, without prior written permission of the publisher. Free Bonus + Source Code Programming can be hard if you don't avoid these 7 biggest mistakes! Click below to get this free PDF guide, and gain access to the source code for all of our books. codequickly.org/bonus Contents Chapter 1: Introduction Chapter 2: Creating Your First Program Chapter 3: Write your very first program Chapter 4: The C++ Structure Chapter 5: Data Types & Variables Program assignment: Convert Fahrenheit to Celsius Chapter 6: if and else if statements Chapter 7: Strings Chapter 8: Arrays Chapter 9: Loops Chapter 10: Switch Case Statements Chapter 11: Conditional Ternary Operator?: Chapter 12: Infinite loops Chapter 13: Functions Chapter 14: Pointers Chapter 15: Object-Oriented Programming Chapter 16: Static class members Chapter 17: Operator overloading Chapter 18: C++ Encapsulation Chapter 19: Inheritance Chapter 20: Polymorphism Chapter 21: Exercises in C++ Chapter 22: Final Project C++ - Advanced Section Chapter 23: Smart Pointers Chapter 24: Exception Handling in C++ Chapter 25: C++ I/O and Stream Chapter 26: The Standard Template Library STL Chapter 27: Multithreading and Concurrency in C++ Chapter 28: C++ Coroutines Chapter 1: Introduction 1.1 - C++ is absolutely brilliant! The increasing popularity of C++ and the growing demand for C++ professionals are just a few of the many advantages of learning C++. Your journey to master it starts here. You will learn that C++ is one of the most powerful and robust programming languages you will ever encounter and considered amongst the most complex yet most rewarding languages to master. C++ can be used as a flexible and extremely dynamic programming tool that can be implemented for countless uses. Unlike most programming languages, C++ can be used for low-level, mid-level, and high-level programming. This means that it can be used for countless applications on many different levels and use cases. C++ is a multiplatform language, so you will be able to write code for Windows, Mac, Linux, and even for mobile devices. It can also provide you with a strong set of programming skills, serve you as a steppingstone, and a root foundation for many other programming languages available. C++ might seem intimidating at first, yet regardless of its complexity, learning the basics is quite simple, and with a lot of practice, you can become a C++ ninja. C++ provides a great amount of freedom and creativity in many domains—computer games, graphical applications, communication, AI and Deep Learning, computer vision, drivers, ethical hacking, desktop apps, and so much more. You will be able to truly micro-manage the computer's performance. As a C++ programmer, you will be able to produce fast, scalable, and flexible applications in various styles and approaches to serve almost any use case. C++ = Salary++ There is one more great advantage in learning C++: it’s a massive career booster. In fact, some of the most successful applications ever developed were written in C++. IT giants such as Facebook, Adobe, Skype, Amazon, PayPal, and more use C++ as a core part of their software development. In other words, learning C++ can boost your career, open lots of doors, and at the same time, make a great mark on your resume. There is a consistent need for C++ programmers, and to be a good fit when the need arises, this book will serve as a great guide for you. There is emerging popularity for C++ and growing demands for C++ professionals. This is one of the reasons for the development of strong C++ communities and forums such as GitHub and Stack Overflow, where you can ask questions, download code, share, learn, and become a valuable, active member. 1.2 - The C++ history in a nutshell… In the early 70s, Dennis Ritchie created the programming language known as The C programming language at Bell Labs in New Jersey. C was available for years serving as a procedural programming language. By the end of the 70s, Bjarne Stroustrup developed what started as an additional extension to C. At the very beginning, Bjarne's work was called "C with classes," only to be renamed C++ in 1983. In 1989, the first commercial version of C++ was released. In 1998, C++ was given an international standard for the first time, which created a worldwide standard for its commercial use. This was the opening bell for a new age in program creation. What is known as Modern C++ was introduced in 2011 and was named C++11, followed by C++14 which was released in 2014, then C++17 which was released in 2017, and finally, the new "baby" of the C++ family is C++20, which was released in 2020, introducing the most powerful new features yet in C++. 1.3 - C++ state of mind If you have never written a code before, or if you've had minimal experience doing so—read this, as you might feel that some C++ concepts or logic are difficult to understand or confusing. This happens to almost any beginner because learning to code is not only like learning a new language with its grammatical rules, but it exposes you to new and more complex logical ways of thinking. This is true, especially with C++. You just need to remember that practice makes perfect and that any beginner programmer suffers the same "childhood sickness" mistakes and some difficulties in the beginning. Don't worry—it’s very natural. It is important to note that the freedom C++ offers does not come without a price. The more complex and flexible a program is, the more there's room for mistakes and bugs. It will be fair to say that as much as it is important to understand how to write code in C++, it is also important to understand how not to. Though modern compilers provide you with a lot of features and tools to help you manage your coding and program flow, it also prevents you from making mistakes, pointing out some problem, which might occur along the way. Remember: practice is always the best way to learn, and your mistakes are your best tutors. 1.4 - Setting your work environment and IDE for Windows For this guide, we will be using one of the most robust and most used development environments for C++: Visual Studio by Microsoft. Visual Studio is the most professional IDE for Windows. There is also a version for Mac. (See: https://visualstudio.microsoft.com/vs/mac/ ). There are many advantages to using Visual Studio, especially since it is probably the tool that you will use if you work in a team. Another advantage is the fact that Visual Studio can support other programming languages such as C#, Python, Java, Angular, and more. So, getting to know how to work with Visual Studio from the beginning can be greatly beneficial. To start installing Visual Studio on your machine, first ensure that: a. Your PC complies with the requirements for installing Visual Studio. This is a must for any software to be installed, let alone a heavy development environment. The system requirements for Visual Studio 2019 are listed below: https://docs.microsoft.com/en- us/visualstudio/releases/2019/system-requirements . b. It is recommended to run Windows updates before the installations. c. If needed, free any space you can. 1. Select the appropriate version for your needs: a. The following versions may apply to you: student discount version, free community edition, or the more advanced option that is available as a free trial/ with a fee. b. Review the options here ( https://visualstudio.microsoft.com/downloads/ ) and download the version you wish to use. 2. Using the Visual Studio Installer: Visual Studio uses its own Installer software, which is downloaded first. Then from this Installer, you can install Visual Studio, add-ons, make changes in the configuration, and uninstall Visual Studio when and if needed. 3. Install Visual Studio: a. When you install Visual Studio, you install not only the IDE but also the “workloads” you think you may need throughout your development process. b. Workloads are, in fact, sets of features suitable for different types of development: Drivers, Web Sites, Desktop Applications, and the programming language you will be using (C++ in our case). The programming language also affects the selection of the “workloads” you will be installing. c. If you missed a “workload” that you need or installed a “workload” that you don’t need, you don’t need to worry, as you can always relaunch the Installer and make changes of such. To do so, go to the Tools > Get Tools and Features menu. d. You can also customize individual components to be installed. Doing so differs from “workloads” as “workloads” are sets of components and features. If you want to add or remove only a selection of such components and features, you will just go to the Individual components tab where you can handpick the components and features you may need. For example, C++ may be used for Console applications or a GUI (Graphic User Interface) rich application using MFC (Microsoft Foundation Class Library). By default, MFC isn’t installed, and if you plan to create GUI based applications, you may want to add MFC. e. You can also add Language Packs, which are literally add-ons to support your native language (i.e., English, French, etc.). 4. Other considerations There are many other options and methods not mentioned here, such as using the Command Line to make the installation and/or changes/customization, selecting a different location for the installation (we recommend sticking to the default), and so on. However, now that you have installed Visual Studio, it's time to get your hands dirty and start coding. Tips Before starting (or during your first time working with Visual C++), there are 2 default options that you may want to set: 1. Never run a previous version when the current version doesn't compile. If the current version doesn't compile, your compiler may offer you to run the last successful build. However, there is no point in doing so. Just fix any errors and build the code again. 2. Always build the source code when the current compiled code isn't up to date. This is done by an attribute called UpToDateChecker. During your second build, you will be asked whether to build the new source code or just run the previous build. Unless the entire source code is up to date, you won't be able to perform proper debugging. 3. On Run, build or deployment errors may occur. When running a project with F5 or the Debug > Start Debugging command, the default setting “Prompt to launch” displays a message if a project should be run even if the build failed. Select “Launch old version” to automatically launch the last good build, which could result in mismatches between the running code and the source code. Select Do Not launch to suppress the message. 1.5 - Setting your IDE for Linux Linux users tend to use open-source compilers, and a great example would be G++. First, let’s open the Terminal. That can be done by pressing: Ctrl + Alt + T Then, install the G++ compiler using the following command: sudo apt -get install g ++ If you are already authorized to install new software, the installation will proceed flawlessly. In case you are not, you will be asked to enter the Admin password. Then, just follow the instructions when prompted. 1.6 - Setting your IDE for MAC Like any other App, Xcode can be installed from the App Store. You can find detailed instructions and guidelines on the following page . You can also register as an Apple developer on this page . Chapter 2: Creating Your First Program Let’s Get Started... Why not jump into the cold water? Let's write your first program together! First, launch Visual Studio. In the File menu select New / Project. To save you time, Visual Studio provides pre-configured templates for commonly used source code projects. We will elaborate on this later. Currently, we selected the console window, as console provides a simple output (and input) to your program via a console window. Now let’s configure your new project: 1. Choose the Windows console application. 2. Choose a name for your program and path to save it. 3. Click OK. Once the project is opened, you will notice that Visual Studio has already done some preliminary work and preparations for you to get you up and running fast. Let's see which features and elements Visual Studio provides: Program breakdown