From 2c0174724af4ca2a988196d67efef593efade4aa Mon Sep 17 00:00:00 2001 From: TylerMSFT Date: Thu, 21 Mar 2024 11:17:24 -0700 Subject: [PATCH 1/3] update --- .../media/calc-vs2022-ctor-definition.png | Bin 0 -> 218883 bytes docs/get-started/tutorial-console-cpp.md | 94 +++++++++--------- 2 files changed, 45 insertions(+), 49 deletions(-) create mode 100644 docs/get-started/media/calc-vs2022-ctor-definition.png diff --git a/docs/get-started/media/calc-vs2022-ctor-definition.png b/docs/get-started/media/calc-vs2022-ctor-definition.png new file mode 100644 index 0000000000000000000000000000000000000000..c96f8008f1f077f2fe6ebef342bac2344473f14b GIT binary patch literal 218883 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%0Dk_f^af)1N{O>?PIt}7Omi~BhVKwET*8p3A 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

*7)LQ`7Nj}MuTM2(8F@M#`~ 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%0Am!= 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 literal 0 HcmV?d00001 diff --git a/docs/get-started/tutorial-console-cpp.md b/docs/get-started/tutorial-console-cpp.md index 8db834984f3..db843298dff 100644 --- a/docs/get-started/tutorial-console-cpp.md +++ b/docs/get-started/tutorial-console-cpp.md @@ -2,7 +2,7 @@ title: "Create a console calculator in C++" description: "Create a Hello World console app and a calculator app in Visual C++" ms.custom: "acquisition, mvc" -ms.date: 03/16/2023 +ms.date: 03/20/2024 ms.topic: "tutorial" ms.devlang: "cpp" --- @@ -15,32 +15,30 @@ The usual starting point for a C++ programmer is a "Hello, world!" application t ## Prerequisites - Have Visual Studio with the **Desktop development with C++** workload installed and running on your computer. If it's not installed, see [Install C++ support in Visual Studio](../build/vscpp-step-0-installation.md). -- This tutorial demonstrates a feature called edit and continue which allows you to make changes to your code while the app is running. To ensure that edit and continue can function for this article, from the main menu choose **Tools** > **Options** > **Debugging** > **General** and ensure that **Require source files to exactly match the original version** is checked. +- This tutorial demonstrates a feature called edit and continue which allows you to make changes to your code while the app is running. To ensure that edit and continue can function for this article, from the main menu select **Tools** > **Options** > **Debugging** > **General** and ensure that **Require source files to exactly match the original version** is checked. ## Create your app project Visual Studio uses *projects* to organize the code for an app, and *solutions* to organize your projects. A project contains all the options, configurations, and rules used to build your apps. It also manages the relationship between all the project's files and any external files. To create your app, first, create a new project and solution. -1. Start Visual Studio and the Visual Studio Start dialog box appears. Choose **Create a new project** to get started. +1. Start Visual Studio--the Visual Studio Start dialog box appears. Select **Create a new project** to get started. :::image type="complex" source="./media/calc-vs2022-initial-dialog.png" alt-text="Screenshot of dialog that appears when Visual Studio 2022 starts."::: The dialog has options to clone a repository, open a project or solution, open a local folder, and create a new project." :::image-end::: - Otherwise, on the menubar in Visual Studio, choose **File** > **New** > **Project**. The **Create a new project** window opens. - -1. In the list of project templates, choose **Console App**, then choose **Next**. +1. In the list of project templates, select **Console App**, then select **Next**. :::image type="content" source="./media/calc-vs2019-choose-console-app.png" alt-text="Screenshot of the Visual Studio Create a new project dialog. The Console App template option is highlighted."::: > [!Important] - > Make sure you choose the C++ version of the **Console App** template. It has the **C++**, **Windows**, and **Console** tags, and the icon has "++" in the corner. + > Make sure you select the C++ version of the **Console App** template. It has the **C++**, **Windows**, and **Console** tags, and the icon has "++" in the corner. -1. In the **Configure your new project** dialog box, select the **Project name** edit box, name your new project *CalculatorTutorial*, then choose **Create**. +1. In the **Configure your new project** dialog box, select the **Project name** edit box, name your new project *CalculatorTutorial*, then select **Create**. :::image type="content" source="./media/calc-vs2019-name-your-project.png" alt-text="Screenshot of the Visual Studio Configure your new project dialog. It has fields for project name, project location, and Solution name."::: - An empty C++ Windows console application gets created. Console applications use a Windows console window to display output and accept user input. In Visual Studio, an editor window opens and shows the generated code: + An empty C++ Windows console application is created. Console applications use a Windows console window to display output and accept user input. In Visual Studio, an editor window opens and shows the generated code: ```cpp // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. @@ -69,11 +67,11 @@ Visual Studio uses *projects* to organize the code for an app, and *solutions* t The template for a new Windows console application creates a simple C++ "Hello World" app. At this point, you can see how Visual Studio builds and runs the apps you create right from the IDE. -1. To build your project, choose **Build Solution** from the **Build** menu. The **Output** window shows the results of the build process. +1. To build your project, select **Build Solution** from the **Build** menu. The **Output** window shows the results of the build process. :::image type="content" source="./media/calc-vs2019-build-your-project.png" alt-text="Screenshot of the Visual Studio Output window. It is displaying a message that the build succeeded."::: -1. To run the code, on the menu bar, choose **Debug**, **Start without debugging**. +1. To run the code, on the menu bar, select **Debug**, **Start without debugging**. :::image type="content" source="./media/calc-vs2019-hello-world-console.png" alt-text="Screenshot of the Visual Studio Debug Console displaying the output of the application: Hello World!."::: @@ -124,9 +122,9 @@ Now let's turn the code in this template into a calculator app. > - The `endl` keyword is like the Enter key; it ends the line and moves the cursor to the next line. It is a better practice to put a `\n` inside the string (contained by `""`) to do the same thing because `endl` always flushes the buffer which can hurt the performance of the program. But since this is a very small app, `endl` is used instead for better readability. > - All C++ statements must end with semicolons and all C++ applications must contain a `main()` function. This function is what the program runs at the start. All code must be accessible from `main()` in order to be used. -1. To save the file, press **Ctrl+S**, or choose the **Save** icon near the top of the IDE, the floppy disk icon in the toolbar under the menu bar. +1. To save the file, press **Ctrl+S**, or select the **Save** icon near the top of the IDE, the floppy disk icon in the toolbar under the menu bar. -1. To run the application, press **Ctrl+F5** or go to the **Debug** menu and choose **Start Without Debugging**. You should see a console window appear that displays the text specified in the code. +1. To run the application, press **Ctrl+F5** or go to the **Debug** menu and select **Start Without Debugging**. You should see a console window appear that displays the text specified in the code. 1. Close the console window when you're done. @@ -136,7 +134,7 @@ It's time to add some math logic. ### To add a Calculator class -1. Go to the **Project** menu and choose **Add Class**. In the **Class Name** edit box, enter *Calculator*. Choose **OK**. Two new files get added to your project. To save all your changed files at once, press **Ctrl+Shift+S**. It's a keyboard shortcut for **File** > **Save All**. There's also a toolbar button for **Save All**, an icon of two floppy disks, found beside the **Save** button. In general, it's good practice to do **Save All** frequently, so you don't miss any files when you save. +1. Go to the **Project** menu and select **Add Class**. In the **Class Name** edit box, enter *Calculator*. Select **OK**. Two new files get added to your project. To save all your changed files at once, press **Ctrl+Shift+S**. It's a keyboard shortcut for **File** > **Save All**. There's also a toolbar button for **Save All**, an icon of two floppy disks, found beside the **Save** button. In general, it's good practice to do **Save All** frequently, so you don't miss any files when you save. :::image type="complex" source="./media/calc-vs2019-create-calculator-class.png" alt-text="Screenshot of the Visual Studio Add Class dialog box."::: The class name field is set to calculator. The .h file field contains Calculator.h. The .cpp file field contains Calculator.cpp. The base class field is empty. Other options for virtual destructor, inline, and unmanaged are unchecked. @@ -144,13 +142,13 @@ It's time to add some math logic. A class is like a blueprint for an object that does something. In this case, we define a calculator and how it should work. - The **Add Class** wizard you used previously created `.h` and `.cpp` files that have the same name as the class. You can see a full list of your project files in the **Solution Explorer** window, visible on the side of the IDE. If the window isn't visible, you can open it from the menu bar: choose **View** > **Solution Explorer**. + The **Add Class** wizard you used previously created `.h` and `.cpp` files that have the same name as the class. You can see a full list of your project files in the **Solution Explorer** window, visible on the side of the IDE. If the window isn't visible, you can open it from the menu bar: select **View** > **Solution Explorer**. :::image type="complex" source="./media/calc-vs2019-solution-explorer.png" alt-text="Screenshot of the Visual Studio Solution Explorer window."::: The calculator tutorial project has a header files node containing Calculator.h. A Source Files node contains Calculator.cpp and CalculatorTutorial.cpp. Nodes for references, external dependencies, and resource files are visible but closed. :::image-end::: - You should now have three tabs open in the editor: *`CalculatorTutorial.cpp`*, *`Calculator.h`*, and *`Calculator.cpp`*. If you accidentally close one of them, you can reopen it by double-clicking it in the **Solution Explorer** window. + You can open a file by double-clicking it in the **Solution Explorer** window. Double-click `Calculator.h` to open it. 1. Replace the contents of **`Calculator.h`** with the following code so that the file now looks like this: @@ -169,23 +167,21 @@ It's time to add some math logic. > - C++ code is organized into *header* (`.h`) files and *source* (`.cpp`) files. Several other file extensions are supported by various compilers, but these are the main ones to know about. Functions and variables are normally *declared*, that is, given a name and a type, in header files, and *implemented*, or given a definition, in source files. To access code defined in another file, you can use `#include "filename.h"`, where `filename.h` is the name of the file that declares the variables or functions you want to use. > - It's good practice to organize your code into different files based on what it does, so it's easy to find the code you need later. In our case, we define the `Calculator` class separately from the file containing the `main()` function, but we plan to reference the `Calculator` class in `main()`. -1. A green squiggle appears under `Calculate` because we haven't defined the `Calculate` function in the `.cpp` file. Hover over `Calculate`, click the down arrow on the screwdriver that appears, and choose **Create definition of 'Calculate' in `Calculator.cpp`**. +1. A green squiggle appears under `Calculate` because we haven't defined the `Calculate` function in the `.cpp` file. Hover over `Calculate`, click the down arrow on the screwdriver that appears, and select **Create definition of 'Calculate' in `Calculator.cpp`**. :::image type="content" source="./media/calc-vs2019-create-definition.png" alt-text="Screenshot of a screwdriver dropdown in the Visual Studio editor window. The option 'Create definition of Calculate in Calculator.cpp' is highlighted."::: - A pop-up appears that gives you a peek of the code change that was made in the other file. The code was added to *`Calculator.cpp`*. + This code is added to *`Calculator.cpp`*: - :::image type="complex" source="./media/calc-vs2019-pop-up-definition.png" alt-text="Screenshot of a pop-up window in the Visual Studio editor showing the definition of the 'Calculate' ctor function."::: + :::image type="complex" source="./media/calc-vs2022-ctor-definition.png" alt-text="Screenshot of the Visual Studio editor showing the definition of the 'Calculate' ctor function."::: The definition of the constructor is: double Calculator::Calculate( double x, char oper, double y) { return 0.0; } :::image-end::: - Currently, it just returns 0.0. Let's change that. Press **Esc** to close the pop-up. + Currently, it just returns 0.0. Let's change that. -1. Switch to the *`Calculator.cpp`* file in the editor window. Remove the `Calculator()` and `~Calculator()` sections (as you did in the `.h` file) and add the following code to `Calculate()`: +1. Switch to the *`Calculator.cpp`* file in the editor window. Replace the contents of *`Calculator::Calculate(double x, char oper, double y)`* with: ```cpp - #include "Calculator.h" - double Calculator::Calculate(double x, char oper, double y) { switch(oper) @@ -211,11 +207,11 @@ It's time to add some math logic. > - The **`double`** keyword denotes a type of number that supports decimals. This way, the calculator can handle both decimal math and integer math. The `Calculate` function is required to always return such a number due to the **`double`** at the very start of the code (this denotes the function's return type), which is why we return 0.0 even in the default case. > - The `.h` file declares the function *prototype*, which tells the compiler upfront what parameters it requires, and what return type to expect from it. The `.cpp` file has all the implementation details of the function. -If you build and run the code again at this point, it will still exit after asking which operation to perform. Next, modify the `main` function to do some calculations. +If you build and run the code again at this point, it will still exit after asking which operation to perform. So, modify the `main` function to do some calculations. ### To call the `Calculator` class member functions -1. Now let's update the `main` function in *`CalculatorTutorial.cpp`*: +1. Update the `main` function in *`CalculatorTutorial.cpp`* as follows: ```cpp // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. @@ -261,7 +257,7 @@ If you build and run the code again at this point, it will still exit after aski ### Build and test the code again -Now it's time to test the program again to make sure everything works properly. +Now test the program again to make sure everything works properly. 1. Press **Ctrl+F5** to rebuild and start the app. @@ -273,17 +269,17 @@ Now it's time to test the program again to make sure everything works properly. ## Debug the app -Since the user is free to type anything into the console window, let's make sure the calculator handles some input as expected. Instead of running the program, let's debug it instead, so we can inspect what it's doing in detail, step-by-step. +Since the user is free to type anything into the console window, let's make sure the calculator handles some input as expected. Instead of running the program, let's debug it so we can inspect what it's doing in detail, step-by-step. -### To run the app in the debugger +### Run the app in the debugger -1. Set a breakpoint on the `result = c.Calculate(x, oper, y);` line. To set the breakpoint, click next to the line in the gray vertical bar along the left edge of the editor window. A red dot appears. +1. In `CalcuatorTutorial.cpp`, set a breakpoint on line: `result = c.Calculate(x, oper, y);`. To set the breakpoint, click next to the line in the gray vertical bar along the left edge of the editor window. A red dot appears. :::image type="content" source="./media/calc-vs2019-set-breakpoint.png" alt-text="Screenshot of the Visual Studio editor. A red dot representing a breakpoint appears on the line: result = c.Calculate(x, oper, y)."::: - Now when we debug the program, it always pauses execution at that line. We already have a rough idea that the program works for simple cases. Since we don't want to pause execution every time, let's make the breakpoint conditional. + Now when we debug the program, execution will pause at that line. We already have a rough idea that the program works for simple cases. Since we don't want to pause execution every time we call `Calculate()`, let's make the breakpoint conditional. -1. Right-click the red dot that represents the breakpoint, and choose **Conditions**. In the edit box for the condition, enter `(y == 0) && (oper == '/')`. Choose the **Close** button when you're done to save the breakpoint condition. +1. Right-click the red dot that represents the breakpoint, and select **Conditions**. In the edit box for the condition, enter `(y == 0) && (oper == '/')`. Select the **Close** button when you're done to save the breakpoint condition. :::image type="complex" source="./media/calc-vs2019-conditional-breakpoint.png" alt-text="Screenshot of Visual Studio displaying the Breakpoint Settings pop-up." The condition for the breakpoint is: y==0 && oper == '/' Is true. @@ -291,7 +287,7 @@ Since the user is free to type anything into the console window, let's make sure Now we pause execution at the breakpoint specifically if a division by 0 is attempted. -1. To debug the program, press **F5**, or choose the **Local Windows Debugger** toolbar button that has the green arrow icon. In your console app, if you enter something like "5 - 0", the program behaves normally and keeps running. However, if you type "10 / 0", it pauses at the breakpoint. You can even put any number of spaces between the operator and numbers: `cin` is smart enough to parse the input appropriately. +1. To debug the program, press **F5**, or select the **Local Windows Debugger** toolbar button that has the green arrow icon. In your console app, if you enter something like "5 - 0", the program behaves normally and keeps running. However, if you type "10 / 0", it pauses at the breakpoint. You can even put any number of spaces between the operator and numbers: `cin` is smart enough to parse the input appropriately. :::image type="content" source="./media/calc-vs2019-debug-breakpoint.png" alt-text="Screenshot of Visual Studio editor. Program execution halted at the conditional breakpoint on the line: result = c.Calculate(x, oper, y);."::: @@ -377,7 +373,7 @@ Let's handle division by zero more gracefully so that it's easier for the user t > [!Note] > When you edit code while in debugging mode, there is a risk of code becoming stale. This happens when the debugger is still running your old code, and has not yet updated it with your changes. The debugger displays a dialog to inform you when this happens. Sometimes, you may need to press **F5** to refresh the code being executed. In particular, if you make a change inside a function while the point of execution is inside that function, you need to step out of the function, then back into it again to get the updated code. If that doesn't work for some reason and you see an error message, you can stop debugging by clicking on the red square in the toolbar under the menus at the top of the IDE, then start debugging again by entering **F5** or by choosing the green "play" arrow beside the stop button on the toolbar. > - > Another reason edit and continue may fail is if you see a message that says "The Require source files to exactly match the original version setting under Debug->Options->General needs to be enabled..." To fix this, from the main menu choose **Tools** > **Options** > **Debugging** > **General** and ensure that **Require source files to exactly match the original version** is checked. + > Another reason edit and continue may fail is if you see a message that says "The Require source files to exactly match the original version setting under Debug->Options->General needs to be enabled..." To fix this, from the main menu select **Tools** > **Options** > **Debugging** > **General** and ensure that **Require source files to exactly match the original version** is checked. > Understanding the Run and Debug shortcuts > @@ -414,15 +410,15 @@ The usual starting point for a C++ programmer is a "Hello, world!" application t Visual Studio uses *projects* to organize the code for an app, and *solutions* to organize your projects. A project contains all the options, configurations, and rules used to build your apps. It also manages the relationship between all the project's files and any external files. To create your app, first, you create a new project and solution. -1. On the menubar in Visual Studio, choose **File** > **New** > **Project**. The **New Project** window opens. +1. On the menubar in Visual Studio, select **File** > **New** > **Project**. The **New Project** window opens. -2. On the left sidebar, make sure **Visual C++** is selected. In the center, choose **Windows Console Application**. +2. On the left sidebar, make sure **Visual C++** is selected. In the center, select **Windows Console Application**. -3. In the **Name** edit box at the bottom, name the new project *CalculatorTutorial*, then choose **OK**. +3. In the **Name** edit box at the bottom, name the new project *CalculatorTutorial*, then select **OK**. :::image type="content" source="./media/calculator-new-project-dialog.png" alt-text="Screenshot of the New Project dialog with the Windows Console Application project type selected and the Name text box set to CalculatorTutorial."::: - An empty C++ Windows console application gets created. Console applications use a Windows console window to display output and accept user input. In Visual Studio, an editor window opens and shows the generated code: + An empty C++ Windows console application is created. Console applications use a Windows console window to display output and accept user input. In Visual Studio, an editor window opens and shows the generated code: ```cpp // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. @@ -451,11 +447,11 @@ Visual Studio uses *projects* to organize the code for an app, and *solutions* t The template for a new windows console application creates a simple C++ "Hello World" app. At this point, you can see how Visual Studio builds and runs the apps you create right from the IDE. -1. To build your project, choose **Build Solution** from the **Build** menu. The **Output** window shows the results of the build process. +1. To build your project, select **Build Solution** from the **Build** menu. The **Output** window shows the results of the build process. :::image type="content" source="./media/calculator-initial-build-output.png" alt-text="Screenshot of the Visual Studio Output window showing that the build was successful."::: -1. To run the code, on the menu bar, choose **Debug**, **Start without debugging**. +1. To run the code, on the menu bar, select **Debug**, **Start without debugging**. :::image type="content" source="./media/calculator-hello-world-console.png" alt-text="Screenshot of the Visual Studio Debug Console showing the output: Hello World!."::: @@ -505,9 +501,9 @@ Now let's turn the code in this template into a calculator app. > - The `endl` keyword is like the Enter key; it ends the line and moves the cursor to the next line. It is a better practice to put a `\n` inside the string (contained by `""`) to do the same thing because `endl` always flushes the buffer and can hurt the performance of the program. But since this is a very small app, `endl` is used instead for better readability. > - All C++ statements must end with semicolons and all C++ applications must contain a `main()` function. This function is what the program runs at the start. All code must be accessible from `main()` in order to be used. -1. To save the file, press **Ctrl+S**, or choose the **Save** icon near the top of the IDE, the floppy disk icon in the toolbar under the menu bar. +1. To save the file, press **Ctrl+S**, or select the **Save** icon near the top of the IDE, the floppy disk icon in the toolbar under the menu bar. -1. To run the application, press **Ctrl+F5** or go to the **Debug** menu and choose **Start Without Debugging**. If you get a pop-up that says **This project is out of date**, you may select **Do not show this dialog again**, and then choose **Yes** to build your application. You should see a console window appear that displays the text specified in the code. +1. To run the application, press **Ctrl+F5** or go to the **Debug** menu and select **Start Without Debugging**. If you get a pop-up that says **This project is out of date**, you may select **Do not show this dialog again**, and then select **Yes** to build your application. You should see a console window appear that displays the text specified in the code. :::image type="complex" source="./media/calculator-first-launch.gif" alt-text="Video showing the process of running the calculator app in the IDE."::: First a dialog box appears that asks whether to build because the project is out of date. The checkbox for 'Do not show this dialog again' is selected. 'Yes' is selected to build the project, the calculator project builds, and then launches in a Windows console window. @@ -521,13 +517,13 @@ It's time to add some math logic. ### To add a Calculator class -1. Go to the **Project** menu and choose **Add Class**. In the **Class Name** edit box, enter *Calculator*. Choose **OK**. Two new files get added to your project. To save all your changed files at once, press **Ctrl+Shift+S**. It's a keyboard shortcut for **File** > **Save All**. There's also a toolbar button for **Save All**, an icon of two floppy disks, found beside the **Save** button. In general, it's good practice to do **Save All** frequently, so you don't miss any files when you save. +1. Go to the **Project** menu and select **Add Class**. In the **Class Name** edit box, enter *Calculator*. Select **OK**. Two new files get added to your project. To save all your changed files at once, press **Ctrl+Shift+S**. It's a keyboard shortcut for **File** > **Save All**. There's also a toolbar button for **Save All**, an icon of two floppy disks, found beside the **Save** button. In general, it's good practice to do **Save All** frequently, so you don't miss any files when you save. :::image type="content" source="./media/calculator-create-class.gif" alt-text="Video showing the user opening the Add Class dialog box, typing 'Calculator' in the Class Name field, and clicking OK."::: A class is like a blueprint for an object that does something. In this case, we define a calculator and how it should work. - The **Add Class** wizard you used previously created `.h` and `.cpp` files that have the same name as the class. You can see a full list of your project files in the **Solution Explorer** window, visible on the side of the IDE. If the window isn't visible, you can open it from the menu bar: choose **View** > **Solution Explorer**. + The **Add Class** wizard you used previously created `.h` and `.cpp` files that have the same name as the class. You can see a full list of your project files in the **Solution Explorer** window, visible on the side of the IDE. If the window isn't visible, you can open it from the menu bar: select **View** > **Solution Explorer**. :::image type="complex" source="./media/calculator-solution-explorer.png" alt-text="Screenshot of the Visual Studio Solution Explorer window."::: The calculator tutorial project has a header files node containing Calculator.h, stdafx.h, and targetver.h. A Source Files node contains Calculator.cpp, CalculatorTutorial.cpp, and stdafx.cpp. Nodes for references, external depndencies, and resource files are visible but closed. @@ -552,7 +548,7 @@ It's time to add some math logic. > - C++ code is organized into *header* (`.h`) files and *source* (`.cpp`) files. Several other file extensions are supported by various compilers, but these are the main ones to know about. Functions and variables are normally *declared*, that is, given a name and a type, in header files, and *implemented*, or given a definition, in source files. To access code defined in another file, you can use `#include "filename.h"`, where `filename.h` is the name of the file that declares the variables or functions you want to use. > - It's good practice to organize your code into different files based on what it does, so it's easy to find the code you need later. In our case, we define the `Calculator` class separately from the file containing the `main()` function, but we plan to reference the `Calculator` class in `main()`. -1. A green squiggle appears under `Calculate` because we haven't defined the `Calculate` function in the `.cpp` file. Hover over `Calculate`, click the down arrow on the light bulb that appears, and choose **Create definition of 'Calculate' in `Calculator.cpp`**. A pop-up appears that gives you a peek of the code change that was made in the other file. The code was added to *`Calculator.cpp`*. +1. A green squiggle appears under `Calculate` because we haven't defined the `Calculate` function in the `.cpp` file. Hover over `Calculate`, click the down arrow on the light bulb that appears, and select **Create definition of 'Calculate' in `Calculator.cpp`**. A pop-up appears that gives you a peek of the code change that was made in the other file. The code was added to *`Calculator.cpp`*. :::image type="content" source="./media/calculator-create-definition.gif" alt-text="Video showing using the light bulb dropdown to select Create definition of Calculate in Calculator.cpp."::: @@ -637,7 +633,7 @@ If you build and run the code again at this point, it will still exit after aski ### Build and test the code again -Now it's time to test the program again to make sure everything works properly. +Test the program again to make sure everything works properly. 1. Press **Ctrl+F5** to rebuild and start the app. @@ -649,7 +645,7 @@ Now it's time to test the program again to make sure everything works properly. Since the user is free to type anything into the console window, let's make sure the calculator handles some input as expected. Instead of running the program, let's debug it instead, so we can inspect what it's doing in detail, step-by-step. -### To run the app in the debugger +### Run the app in the debugger 1. Set a breakpoint on the `result = c.Calculate(x, oper, y);` line. To set the breakpoint, click next to the line in the gray vertical bar along the left edge of the editor window. A red dot appears. @@ -657,7 +653,7 @@ Since the user is free to type anything into the console window, let's make sure Now when we debug the program, it always pauses execution at that line. We already have a rough idea that the program works for simple cases. Since we don't want to pause execution every time, let's make the breakpoint conditional. -1. Right-click the red dot that represents the breakpoint, and choose **Conditions**. In the edit box for the condition, enter `(y == 0) && (oper == '/')`. Choose the **Close** button when you're done to save the breakpoint condition. +1. Right-click the red dot that represents the breakpoint, and select **Conditions**. In the edit box for the condition, enter `(y == 0) && (oper == '/')`. Select the **Close** button when you're done to save the breakpoint condition. :::image type="complex" source="./media/calculator-conditional-breakpoint.gif" alt-text="Video demonstrating the process of setting a conditional breakpoint."::: The breakpoint is on the line: result = c dot Calculate ( x, oper, y). 'Conditions...' is selected in the breakpoint dropdown, which opens the breakpoint settings window. The Condition option is checked, underneath which the dropdowns are set as: 'Conditional Expression' and 'Is true'. The user enters y == 0 && oper == '/' into the condition textbox and then selects close to set the conditional breakpoint. @@ -665,7 +661,7 @@ Since the user is free to type anything into the console window, let's make sure Now we pause execution at the breakpoint specifically if a division by 0 is attempted. -1. To debug the program, press **F5**, or choose the **Local Windows Debugger** toolbar button that has the green arrow icon. In your console app, if you enter something like "5 - 0", the program behaves normally and keeps running. However, if you type "10 / 0", it pauses at the breakpoint. You can even put any number of spaces between the operator and numbers; `cin` is smart enough to parse the input appropriately. +1. To debug the program, press **F5**, or select the **Local Windows Debugger** toolbar button that has the green arrow icon. In your console app, if you enter something like "5 - 0", the program behaves normally and keeps running. However, if you type "10 / 0", it pauses at the breakpoint. You can even put any number of spaces between the operator and numbers; `cin` is smart enough to parse the input appropriately. :::image type="complex" source="./media/calculator-debug-conditional.gif" alt-text="Video showing the program execution paused at the conditional breakpoint."::: The user enters 5 - 0. The app outputs: Result is 5. The user then enters 10/0 and because the condition for the conditional breakpoint is met, execution stops on the line: result = c.Calculate(x, oper, y); @@ -761,7 +757,7 @@ Let's handle division by zero more gracefully, so a user can understand the prob > [!Note] > When you edit code while in debugging mode, there is a risk of code becoming stale. This happens when the debugger is still running your old code, and has not yet updated it with your changes. The debugger pops up a dialog to inform you when this happens. Sometimes, you may need to press **F5** to refresh the code being executed. In particular, if you make a change inside a function while the point of execution is inside that function, step out of the function, then back into it again to get the updated code. If that doesn't work for some reason and you see an error message, you can stop debugging by clicking on the red square in the toolbar under the menus at the top of the IDE, then start debugging again by entering **F5** or by choosing the green "play" arrow beside the stop button on the toolbar. > - > Another reason edit and continue may fail is that you need to go to the main menu and choose **Tools** > **Options** > **Debugging** > **General** and ensure that **Require source files to exactly match the original version** is checked. + > Another reason edit and continue may fail is that you need to go to the main menu and select **Tools** > **Options** > **Debugging** > **General** and ensure that **Require source files to exactly match the original version** is checked. > Understanding the Run and Debug shortcuts > From 8be0c543c2f1cadb9d16c2ca6fd6afec63af2275 Mon Sep 17 00:00:00 2001 From: TylerMSFT Date: Thu, 21 Mar 2024 14:15:17 -0700 Subject: [PATCH 2/3] updates --- docs/get-started/tutorial-console-cpp.md | 150 +++++++++++++---------- 1 file changed, 82 insertions(+), 68 deletions(-) diff --git a/docs/get-started/tutorial-console-cpp.md b/docs/get-started/tutorial-console-cpp.md index db843298dff..485def63714 100644 --- a/docs/get-started/tutorial-console-cpp.md +++ b/docs/get-started/tutorial-console-cpp.md @@ -2,7 +2,7 @@ title: "Create a console calculator in C++" description: "Create a Hello World console app and a calculator app in Visual C++" ms.custom: "acquisition, mvc" -ms.date: 03/20/2024 +ms.date: 03/21/2024 ms.topic: "tutorial" ms.devlang: "cpp" --- @@ -10,16 +10,16 @@ ms.devlang: "cpp" ::: moniker range=">=msvc-160" -The usual starting point for a C++ programmer is a "Hello, world!" application that runs on the command line. That's what you create first in Visual Studio in this article, and then we move on to something more challenging: a calculator app. +The usual starting point for a C++ programmer is a "Hello, world!" application that runs on the command line. You'll start with that in this article, and then we move on to something more challenging: a calculator app. ## Prerequisites -- Have Visual Studio with the **Desktop development with C++** workload installed and running on your computer. If it's not installed, see [Install C++ support in Visual Studio](../build/vscpp-step-0-installation.md). -- This tutorial demonstrates a feature called edit and continue which allows you to make changes to your code while the app is running. To ensure that edit and continue can function for this article, from the main menu select **Tools** > **Options** > **Debugging** > **General** and ensure that **Require source files to exactly match the original version** is checked. +- Visual Studio with the **Desktop development with C++** workload installed and running on your computer. To install it, see [Install C++ support in Visual Studio](../build/vscpp-step-0-installation.md). +- This tutorial demonstrates a feature called edit and continue which allows you to make changes to your code while the app is running. To enable edit and continue, from the main menu select **Tools** > **Options** > **Debugging** > **General** and ensure that **Require source files to exactly match the original version** is checked. ## Create your app project -Visual Studio uses *projects* to organize the code for an app, and *solutions* to organize your projects. A project contains all the options, configurations, and rules used to build your apps. It also manages the relationship between all the project's files and any external files. To create your app, first, create a new project and solution. +Visual Studio uses *projects* to organize the code for an app, and *solutions* to organize the project(s). A project contains all the options, configurations, and rules used to build an app. It also manages the relationship between all the project's files and any external files. To create your app, first, create a new project and solution. 1. Start Visual Studio--the Visual Studio Start dialog box appears. Select **Create a new project** to get started. @@ -34,11 +34,11 @@ Visual Studio uses *projects* to organize the code for an app, and *solutions* t > [!Important] > Make sure you select the C++ version of the **Console App** template. It has the **C++**, **Windows**, and **Console** tags, and the icon has "++" in the corner. -1. In the **Configure your new project** dialog box, select the **Project name** edit box, name your new project *CalculatorTutorial*, then select **Create**. +1. In the **Configure your new project** dialog box, select the **Project name** text box, name your new project *CalculatorTutorial*, then select **Create**. :::image type="content" source="./media/calc-vs2019-name-your-project.png" alt-text="Screenshot of the Visual Studio Configure your new project dialog. It has fields for project name, project location, and Solution name."::: - An empty C++ Windows console application is created. Console applications use a Windows console window to display output and accept user input. In Visual Studio, an editor window opens and shows the generated code: + An empty C++ Windows console application 'Hello World' app is created. Console applications use a Windows console window to display output and accept user input. In Visual Studio, an editor window opens and shows the generated code: ```cpp // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. @@ -69,13 +69,17 @@ The template for a new Windows console application creates a simple C++ "Hello W 1. To build your project, select **Build Solution** from the **Build** menu. The **Output** window shows the results of the build process. - :::image type="content" source="./media/calc-vs2019-build-your-project.png" alt-text="Screenshot of the Visual Studio Output window. It is displaying a message that the build succeeded."::: + :::image type="content" source="./media/calc-vs2019-build-your-project.png" alt-text="Screenshot of the Visual Studio Output window. It's displaying a message that the build succeeded."::: -1. To run the code, on the menu bar, select **Debug**, **Start without debugging**. +1. To run the code, on the menu bar, select **Debug**, **Start without debugging** (Ctrl+F5). :::image type="content" source="./media/calc-vs2019-hello-world-console.png" alt-text="Screenshot of the Visual Studio Debug Console displaying the output of the application: Hello World!."::: - A console window opens and then runs your app. When you start a console app in Visual Studio, it runs your code, then prints "Press any key to close this window . . ." to give you a chance to see the output. Congratulations! You've created your first "Hello, world!" console app in Visual Studio! + A console window opens and then runs your app. + + When you start a console app in Visual Studio, it runs your code, then prints "Press any key to close this window . . ." to give you a chance to see the output. + + Congratulations! You created your first "Hello, world!" console app in Visual Studio! 1. Press a key to dismiss the console window and return to Visual Studio. @@ -83,7 +87,7 @@ You now have the tools to build and run your app after every change, to verify t ## Edit the code -Now let's turn the code in this template into a calculator app. +Now let's modify the code in this template to be a calculator app. 1. Replace the contents of the *`CalculatorTutorial.cpp`* file with the following code so that it matches this example: @@ -119,7 +123,7 @@ Now let's turn the code in this template into a calculator app. > - The `#include` statements allow you to reference code located in other files. Sometimes, you may see a filename surrounded by angle brackets (**\<\>**); other times, it's surrounded by quotes (**" "**). In general, angle brackets are used when referencing the C++ Standard Library, while quotes are used for other files. > - The `using namespace std;` line tells the compiler to expect stuff from the C++ Standard Library to be used in this file. Without this line, each keyword from the library would have to be preceded with `std::` to denote its scope. For instance, without that line, each reference to `cout` would have to be written as `std::cout`. The **`using`** statement is added to make the code look more clean. > - The `cout` keyword is used to print to standard output in C++. The **\<\<** operator tells the compiler to send whatever is to the right of it to the standard output. - > - The `endl` keyword is like the Enter key; it ends the line and moves the cursor to the next line. It is a better practice to put a `\n` inside the string (contained by `""`) to do the same thing because `endl` always flushes the buffer which can hurt the performance of the program. But since this is a very small app, `endl` is used instead for better readability. + > - The `endl` keyword is like the Enter key; it ends the line and moves the cursor to the next line. It's a better practice to put a `\n` inside the string (contained by `""`) to do the same thing because `endl` always flushes the buffer which can hurt the performance of the program. But since this is a very small app, `endl` is used instead for better readability. > - All C++ statements must end with semicolons and all C++ applications must contain a `main()` function. This function is what the program runs at the start. All code must be accessible from `main()` in order to be used. 1. To save the file, press **Ctrl+S**, or select the **Save** icon near the top of the IDE, the floppy disk icon in the toolbar under the menu bar. @@ -130,17 +134,17 @@ Now let's turn the code in this template into a calculator app. ## Add code to do some math -It's time to add some math logic. +A class is like a blueprint for an object that does something. In this case, we define a calculator class to contain the math logic. -### To add a Calculator class +### Add a Calculator class -1. Go to the **Project** menu and select **Add Class**. In the **Class Name** edit box, enter *Calculator*. Select **OK**. Two new files get added to your project. To save all your changed files at once, press **Ctrl+Shift+S**. It's a keyboard shortcut for **File** > **Save All**. There's also a toolbar button for **Save All**, an icon of two floppy disks, found beside the **Save** button. In general, it's good practice to do **Save All** frequently, so you don't miss any files when you save. +1. Go to the **Project** menu and select **Add Class**. In the **Class Name** edit box, enter *Calculator*. Select **OK**. :::image type="complex" source="./media/calc-vs2019-create-calculator-class.png" alt-text="Screenshot of the Visual Studio Add Class dialog box."::: The class name field is set to calculator. The .h file field contains Calculator.h. The .cpp file field contains Calculator.cpp. The base class field is empty. Other options for virtual destructor, inline, and unmanaged are unchecked. :::image-end::: - A class is like a blueprint for an object that does something. In this case, we define a calculator and how it should work. + Two new files get added to your project. To save all your changed files at once, press **Ctrl+Shift+S**. It's a keyboard shortcut for **File** > **Save All**. There's also a toolbar button for **Save All**, an icon of two floppy disks, found beside the **Save** button. In general, it's good practice to do **Save All** frequently, so you don't miss any files when you save. The **Add Class** wizard you used previously created `.h` and `.cpp` files that have the same name as the class. You can see a full list of your project files in the **Solution Explorer** window, visible on the side of the IDE. If the window isn't visible, you can open it from the menu bar: select **View** > **Solution Explorer**. @@ -167,7 +171,7 @@ It's time to add some math logic. > - C++ code is organized into *header* (`.h`) files and *source* (`.cpp`) files. Several other file extensions are supported by various compilers, but these are the main ones to know about. Functions and variables are normally *declared*, that is, given a name and a type, in header files, and *implemented*, or given a definition, in source files. To access code defined in another file, you can use `#include "filename.h"`, where `filename.h` is the name of the file that declares the variables or functions you want to use. > - It's good practice to organize your code into different files based on what it does, so it's easy to find the code you need later. In our case, we define the `Calculator` class separately from the file containing the `main()` function, but we plan to reference the `Calculator` class in `main()`. -1. A green squiggle appears under `Calculate` because we haven't defined the `Calculate` function in the `.cpp` file. Hover over `Calculate`, click the down arrow on the screwdriver that appears, and select **Create definition of 'Calculate' in `Calculator.cpp`**. +1. A green squiggle appears under `Calculate` because although the `Calculate` function has been *declared*, it hasn't been *defined*. Hover over `Calculate`, click the down arrow on the screwdriver that appears, and select **Create definition of 'Calculate' in `Calculator.cpp`**. :::image type="content" source="./media/calc-vs2019-create-definition.png" alt-text="Screenshot of a screwdriver dropdown in the Visual Studio editor window. The option 'Create definition of Calculate in Calculator.cpp' is highlighted."::: @@ -207,7 +211,7 @@ It's time to add some math logic. > - The **`double`** keyword denotes a type of number that supports decimals. This way, the calculator can handle both decimal math and integer math. The `Calculate` function is required to always return such a number due to the **`double`** at the very start of the code (this denotes the function's return type), which is why we return 0.0 even in the default case. > - The `.h` file declares the function *prototype*, which tells the compiler upfront what parameters it requires, and what return type to expect from it. The `.cpp` file has all the implementation details of the function. -If you build and run the code again at this point, it will still exit after asking which operation to perform. So, modify the `main` function to do some calculations. +If you build and run the code again at this point, it will immediately exit after asking which operation to perform. So, modify the `main` function to do multiple calculations. ### To call the `Calculator` class member functions @@ -248,7 +252,7 @@ If you build and run the code again at this point, it will still exit after aski > Understanding the code > > - Since C++ programs always start at the `main()` function, we need to call our other code from there, so a `#include` statement is needed. - > - Some initial variables `x`, `y`, `oper`, and `result` are declared to store the first number, second number, operator, and final result, respectively. It is always good practice to give them some initial values to avoid undefined behavior, which is what is done here. + > - Some initial variables `x`, `y`, `oper`, and `result` are declared to store the first number, second number, operator, and final result, respectively. It's always good practice to give them some initial values to avoid undefined behavior, which is what is done here. > - The `Calculator c;` line declares an object named 'c' as an instance of the `Calculator` class. The class itself is just a blueprint for how calculators work; the object is the specific calculator that does the math. > - The `while (true)` statement is a loop. The code inside the loop continues to execute over and over again as long as the condition inside the `()` holds true. Since the condition is simply listed as **`true`**, it's always true, so the loop runs forever. To close the program, the user must manually close the console window. Otherwise, the program always waits for new input. > - The `cin` keyword is used to accept input from the user. This input stream is smart enough to process a line of text entered in the console window and place it inside each of the variables listed, in order, assuming the user input matches the required specification. You can modify this line to accept different types of input such as more than two numbers--though the `Calculate()` function would also need to be updated to handle this. @@ -269,41 +273,47 @@ Now test the program again to make sure everything works properly. ## Debug the app -Since the user is free to type anything into the console window, let's make sure the calculator handles some input as expected. Instead of running the program, let's debug it so we can inspect what it's doing in detail, step-by-step. +Since the user is free to type anything into the console window, let's make sure the calculator handles unexpected input. Instead of running the program, let's debug it so we can inspect what it's doing step-by-step. ### Run the app in the debugger -1. In `CalcuatorTutorial.cpp`, set a breakpoint on line: `result = c.Calculate(x, oper, y);`. To set the breakpoint, click next to the line in the gray vertical bar along the left edge of the editor window. A red dot appears. +1. In `CalcuatorTutorial.cpp`, set a breakpoint on the line: `result = c.Calculate(x, oper, y);`. To set the breakpoint, click next to the line in the gray vertical bar along the left edge of the editor window. A red dot appears. :::image type="content" source="./media/calc-vs2019-set-breakpoint.png" alt-text="Screenshot of the Visual Studio editor. A red dot representing a breakpoint appears on the line: result = c.Calculate(x, oper, y)."::: - Now when we debug the program, execution will pause at that line. We already have a rough idea that the program works for simple cases. Since we don't want to pause execution every time we call `Calculate()`, let's make the breakpoint conditional. + Now when we debug the program, execution pauses at that line. We already have a rough idea that the program works for simple cases. Since we don't want to pause execution every time we call `Calculate()`, let's make the breakpoint conditional. -1. Right-click the red dot that represents the breakpoint, and select **Conditions**. In the edit box for the condition, enter `(y == 0) && (oper == '/')`. Select the **Close** button when you're done to save the breakpoint condition. +1. Right-click the red dot that represents the breakpoint, and select **Conditions**. In the edit box for the condition, enter `(y == 0) && (oper == '/')`. Select the **Close** button to save the breakpoint condition. :::image type="complex" source="./media/calc-vs2019-conditional-breakpoint.png" alt-text="Screenshot of Visual Studio displaying the Breakpoint Settings pop-up." The condition for the breakpoint is: y==0 && oper == '/' Is true. :::image-end::: - Now we pause execution at the breakpoint specifically if a division by 0 is attempted. + Now, execution will pause at the breakpoint when the app tries to divide by 0. -1. To debug the program, press **F5**, or select the **Local Windows Debugger** toolbar button that has the green arrow icon. In your console app, if you enter something like "5 - 0", the program behaves normally and keeps running. However, if you type "10 / 0", it pauses at the breakpoint. You can even put any number of spaces between the operator and numbers: `cin` is smart enough to parse the input appropriately. +1. To debug the program, press **F5**, or select the **Local Windows Debugger** toolbar button that has the green arrow icon. In your console app, if you enter something like "5 - 0", the program behaves normally and keeps running. However, if you type "10 / 0", it pauses at the breakpoint. You can put any number of spaces between the operator and numbers: `cin` is smart enough to parse the input appropriately. :::image type="content" source="./media/calc-vs2019-debug-breakpoint.png" alt-text="Screenshot of Visual Studio editor. Program execution halted at the conditional breakpoint on the line: result = c.Calculate(x, oper, y);."::: ### Useful windows in the debugger -Whenever you debug your code, you may notice that some new windows appear. These windows can assist your debugging experience. Take a look at the **Autos** window. The **Autos** window shows you the current values of variables used at least three lines before and up to the current line. To see all of the variables from that function, switch to the **Locals** window. You can modify the values of these variables while debugging, to see what effect they would have on the program. In this case, we leave them alone. +When you debug your code, you may notice that some new windows appear. These windows can assist your debugging experience. Take a look at the **Autos** window. The **Autos** window shows you the current values of variables used at least three lines before and up to the current line. + + :::image type="complex" source="./media/calculator-autos.png" alt-text="Screenshot of the Visual Studio debugger Autos window."::: + The value of oper is 47 '/', result is 5, x is 10, and y is 0. + :::image-end::: + +To see all of the variables from that function, switch to the **Locals** window. You can modify the values of these variables while debugging to see what effect they would have on the program. In this case, we leave them alone. :::image type="complex" source="./media/calc-vs2019-debug-locals.png" alt-text="Screenshot of the Locals window in Visual Studio, displaying the current values of local variables while debugging."::: The value of oper is 47 '/', result is 0, x is 10, and y is 0. :::image-end::: -You can also hover over variables in the code to see their current values where the execution is currently paused. Make sure the editor window is in focus by clicking on it first. +You can also hover over variables in the code to see their current values at the point where execution is currently paused. Make sure the editor window is in focus by clicking on it first. :::image type="content" source="./media/calc-vs2019-hover-tooltip.png" alt-text="Screenshot of a tooltip showing the value of the variable 'oper', which is 47 or '/'."::: -### To continue debugging +### Continue debugging 1. The yellow arrow on the left shows the current point of execution. The current line calls `Calculate`, so press **F11** to **Step Into** the function. Now you're executing code in the body of the `Calculate` function. Be careful with **Step Into** because it steps into any functions on the line you're on, including standard library functions. It's fine to step into the standard library, but you may be more interested in focusing on your code instead of library code. @@ -311,19 +321,19 @@ You can also hover over variables in the code to see their current values where 1. Continue using **F10** to **Step Over** each line until you get back to the `main()` function in the other file, and stop on the `cout` line. - It looks like the program is doing what is expected: it takes the first number, and divides it by the second. On the `cout` line, hover over the `result` variable or take a look at `result` in the **Autos** window. Its value `inf`, which doesn't look right, so let's fix it. The `cout` line just outputs whatever value is stored in `result`, so when you step one more line forward using **F10**, the console window displays: + It looks like the program is doing what's expected: it takes the first number, and divides it by the second. On the `cout` line, hover over the `result` variable or take a look at `result` in the **Autos** window. Its value `inf`, which doesn't look right, so let's fix it. The `cout` line just outputs whatever value is stored in `result`, so when you step one more line forward using **F10**, the console window displays: - :::image type="complex" source="./media/calc-vs2019-divide-by-zero-fail.png" alt-text="Screenshot of a command window displaying the result of a division by zero."::: - The user entered 10 / 0. The program output: Result of 10/0 is: inf. - :::imnage-end::: + :::image type="complex" source="./media/calc-vs2019-divide-by-zero-fail.png" alt-text="Screenshot of the Visual Studio Debug Console displaying the result of a division by zero operation."::: + The app output: Please enter the operation to perform. Format: a+b | a-b | a*b | a/b. The user entered 5-0. The app output: Result is: 5. THe user entered 10/0. The app output: Result is: inf + :::image-end::: This result is because division by zero is undefined, so the program doesn't have a numerical answer for the requested operation. -### To fix the "divide by zero" error +### Fix the "divide by zero" error Let's handle division by zero more gracefully so that it's easier for the user to understand the problem. -1. Make the following changes in *`CalculatorTutorial.cpp`*. (You can leave the program running as you edit, thanks to a debugger feature called **Edit and Continue**). The change is to add an `if` statement following `cin >> x >> oper >> y;` to check for division by zero and output a message to the user if it happens. Otherwise, the result is printed. +1. Make the following changes in *`CalculatorTutorial.cpp`*. (You can leave the program running as you edit, thanks to a debugger feature called **Edit and Continue**). Add an `if` statement following `cin >> x >> oper >> y;` to check for division by zero and output a message to the user if it happens. Otherwise, the result is printed. ```cpp // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. @@ -364,14 +374,14 @@ Let's handle division by zero more gracefully so that it's easier for the user t } ``` -1. Now press **F5** once. Program execution continues all the way until it has to pause to ask for user input. Enter `10 / 0` again. Now, a more helpful message is printed. The user is asked for more input, and the program continues executing normally. +1. Press **F5** once. Program execution continues all the way until it has to pause to ask for user input. Enter `10 / 0` again. Now, a more helpful message is printed. The user is asked for more input, and the program continues executing normally. :::image type="complex" source="./media/calc-vs2019-final-verification.png" alt-text="Screenshot of a console window showing the final output after implementing changes to handle division by zero."::: The console window displays two lines: 10 / 0 Result is: inf, followed by, 10 / 0 Math error: Attempted to divide by zero. :::image-end::: > [!Note] - > When you edit code while in debugging mode, there is a risk of code becoming stale. This happens when the debugger is still running your old code, and has not yet updated it with your changes. The debugger displays a dialog to inform you when this happens. Sometimes, you may need to press **F5** to refresh the code being executed. In particular, if you make a change inside a function while the point of execution is inside that function, you need to step out of the function, then back into it again to get the updated code. If that doesn't work for some reason and you see an error message, you can stop debugging by clicking on the red square in the toolbar under the menus at the top of the IDE, then start debugging again by entering **F5** or by choosing the green "play" arrow beside the stop button on the toolbar. + > When you edit code while in debugging mode, there is a risk of code becoming stale. This happens when the debugger is still running your old code, and has not yet updated it with your changes. The debugger displays a dialog to inform you when this happens. Sometimes, you may need to press **F5** to refresh the code being executed. In particular, if you make a change inside a function while the point of execution is inside that function, you need to step out of the function, then back into it again to get the updated code. If that doesn't work and you see an error message, you can stop debugging by clicking on the red square in the toolbar under the menus at the top of the IDE, then start debugging again by entering **F5** or by choosing the green "play" arrow beside the stop button on the toolbar. > > Another reason edit and continue may fail is if you see a message that says "The Require source files to exactly match the original version setting under Debug->Options->General needs to be enabled..." To fix this, from the main menu select **Tools** > **Options** > **Debugging** > **General** and ensure that **Require source files to exactly match the original version** is checked. @@ -400,25 +410,23 @@ Congratulations! You've completed the code for the calculator app, built and deb ::: moniker range=" **New** > **Project**. The **New Project** window opens. - 2. On the left sidebar, make sure **Visual C++** is selected. In the center, select **Windows Console Application**. +3. In the **Name** textbox at the bottom, name the new project *CalculatorTutorial*, then select **OK**. -3. In the **Name** edit box at the bottom, name the new project *CalculatorTutorial*, then select **OK**. - - :::image type="content" source="./media/calculator-new-project-dialog.png" alt-text="Screenshot of the New Project dialog with the Windows Console Application project type selected and the Name text box set to CalculatorTutorial."::: + :::image type="content" source="./media/calculator-new-project-dialog.png" alt-text="Screenshot of the New Project dialog. The Windows Console Application project type is selected. The Name text box set to CalculatorTutorial."::: - An empty C++ Windows console application is created. Console applications use a Windows console window to display output and accept user input. In Visual Studio, an editor window opens and shows the generated code: + An empty C++ Windows console application 'Hello World' app is created. Console applications use a Windows console window to display output and accept user input. In Visual Studio, an editor window opens and shows the generated code: ```cpp // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there. @@ -451,11 +459,15 @@ The template for a new windows console application creates a simple C++ "Hello W :::image type="content" source="./media/calculator-initial-build-output.png" alt-text="Screenshot of the Visual Studio Output window showing that the build was successful."::: -1. To run the code, on the menu bar, select **Debug**, **Start without debugging**. +1. To run the code, on the menu bar, select **Debug**, **Start without debugging** (Ctrl+F5). :::image type="content" source="./media/calculator-hello-world-console.png" alt-text="Screenshot of the Visual Studio Debug Console showing the output: Hello World!."::: - A console window opens and then runs your app. When you start a console app in Visual Studio, it runs your code, then prints "Press any key to continue . . ." to give you a chance to see the output. Congratulations! You've created your first "Hello, world!" console app in Visual Studio! + A console window opens and then runs your app. + + When you start a console app in Visual Studio, it runs your code, then prints "Press any key to close this window . . ." to give you a chance to see the output. + + Congratulations! You created your first "Hello, world!" console app in Visual Studio! 1. Press a key to dismiss the console window and return to Visual Studio. @@ -463,7 +475,7 @@ You now have the tools to build and run your app after every change, to verify t ## Edit the code -Now let's turn the code in this template into a calculator app. +Now let's turn the code in this template to be a calculator app. 1. Replace the contents of the *`CalculatorTutorial.cpp`* file with the following code so that it matches this example: @@ -498,7 +510,7 @@ Now let's turn the code in this template into a calculator app. > - The `#include` statements allow you to reference code located in other files. Sometimes, you may see a filename surrounded by angle brackets (**\<\>**); other times, it's surrounded by quotes (**" "**). In general, angle brackets are used when referencing the C++ Standard Library, while quotes are used for other files. > - The `using namespace std;` line tells the compiler to expect stuff from the C++ Standard Library to be used in this file. Without this line, each keyword from the library would have to be preceded with `std::` to denote its scope. For instance, without that line, each reference to `cout` would have to be written as `std::cout`. The **`using`** statement is added to make the code look more clean. > - The `cout` keyword is used to print to standard output in C++. The **`<<`* operator tells the compiler to send whatever is to the right of it to the standard output. - > - The `endl` keyword is like the Enter key; it ends the line and moves the cursor to the next line. It is a better practice to put a `\n` inside the string (contained by `""`) to do the same thing because `endl` always flushes the buffer and can hurt the performance of the program. But since this is a very small app, `endl` is used instead for better readability. + > - The `endl` keyword is like the Enter key; it ends the line and moves the cursor to the next line. It's a better practice to put a `\n` inside the string (contained by `""`) to do the same thing because `endl` always flushes the buffer and can hurt the performance of the program. But since this is a very small app, `endl` is used instead for better readability. > - All C++ statements must end with semicolons and all C++ applications must contain a `main()` function. This function is what the program runs at the start. All code must be accessible from `main()` in order to be used. 1. To save the file, press **Ctrl+S**, or select the **Save** icon near the top of the IDE, the floppy disk icon in the toolbar under the menu bar. @@ -513,23 +525,25 @@ Now let's turn the code in this template into a calculator app. ## Add code to do some math -It's time to add some math logic. +A class is like a blueprint for an object that does something. In this case, we define a calculator class to contain the math logic. -### To add a Calculator class +### Add a Calculator class -1. Go to the **Project** menu and select **Add Class**. In the **Class Name** edit box, enter *Calculator*. Select **OK**. Two new files get added to your project. To save all your changed files at once, press **Ctrl+Shift+S**. It's a keyboard shortcut for **File** > **Save All**. There's also a toolbar button for **Save All**, an icon of two floppy disks, found beside the **Save** button. In general, it's good practice to do **Save All** frequently, so you don't miss any files when you save. +1. Go to the **Project** menu and select **Add Class**. In the **Class Name** edit box, enter *Calculator*. Select **OK**. :::image type="content" source="./media/calculator-create-class.gif" alt-text="Video showing the user opening the Add Class dialog box, typing 'Calculator' in the Class Name field, and clicking OK."::: A class is like a blueprint for an object that does something. In this case, we define a calculator and how it should work. - The **Add Class** wizard you used previously created `.h` and `.cpp` files that have the same name as the class. You can see a full list of your project files in the **Solution Explorer** window, visible on the side of the IDE. If the window isn't visible, you can open it from the menu bar: select **View** > **Solution Explorer**. + Two new files get added to your project. To save all your changed files at once, press **Ctrl+Shift+S**. It's a keyboard shortcut for **File** > **Save All**. There's also a toolbar button for **Save All**, an icon of two floppy disks, found beside the **Save** button. In general, it's good practice to do **Save All** frequently, so you don't miss any files when you save. + + The **Add Class** wizard creates `.h` and `.cpp` files that have the same name as the class. You can see a full list of your project files in the **Solution Explorer** window, visible on the side of the IDE. If the window isn't visible, you can open it from the menu bar: select **View** > **Solution Explorer**. :::image type="complex" source="./media/calculator-solution-explorer.png" alt-text="Screenshot of the Visual Studio Solution Explorer window."::: - The calculator tutorial project has a header files node containing Calculator.h, stdafx.h, and targetver.h. A Source Files node contains Calculator.cpp, CalculatorTutorial.cpp, and stdafx.cpp. Nodes for references, external depndencies, and resource files are visible but closed. + The calculator tutorial project has a header files node containing Calculator.h, stdafx.h, and targetver.h. A Source Files node contains Calculator.cpp, CalculatorTutorial.cpp, and stdafx.cpp. Nodes for references, external dependencies, and resource files are visible but closed. :::image-end::: - You should now have three tabs open in the editor: *`CalculatorTutorial.cpp`*, *`Calculator.h`*, and *`Calculator.cpp`*. If you accidentally close one of them, you can reopen it by double-clicking it in the **Solution Explorer** window. + You can open a file by double-clicking it in the **Solution Explorer** window. Double-click `Calculator.h` to open it. 1. Replace the contents of **`Calculator.h`** with the following code so that the file now looks like this: @@ -548,7 +562,7 @@ It's time to add some math logic. > - C++ code is organized into *header* (`.h`) files and *source* (`.cpp`) files. Several other file extensions are supported by various compilers, but these are the main ones to know about. Functions and variables are normally *declared*, that is, given a name and a type, in header files, and *implemented*, or given a definition, in source files. To access code defined in another file, you can use `#include "filename.h"`, where `filename.h` is the name of the file that declares the variables or functions you want to use. > - It's good practice to organize your code into different files based on what it does, so it's easy to find the code you need later. In our case, we define the `Calculator` class separately from the file containing the `main()` function, but we plan to reference the `Calculator` class in `main()`. -1. A green squiggle appears under `Calculate` because we haven't defined the `Calculate` function in the `.cpp` file. Hover over `Calculate`, click the down arrow on the light bulb that appears, and select **Create definition of 'Calculate' in `Calculator.cpp`**. A pop-up appears that gives you a peek of the code change that was made in the other file. The code was added to *`Calculator.cpp`*. +1. A green squiggle appears under `Calculate` because although the `Calculate` function has been *declared*, it hasn't been *defined*. Hover over `Calculate`, click the down arrow on the screwdriver that appears, and select **Create definition of 'Calculate' in `Calculator.cpp`**. A pop-up appears that gives you a peek of the code change that was made in the other file. The code was added to *`Calculator.cpp`*. :::image type="content" source="./media/calculator-create-definition.gif" alt-text="Video showing using the light bulb dropdown to select Create definition of Calculate in Calculator.cpp."::: @@ -624,7 +638,7 @@ If you build and run the code again at this point, it will still exit after aski > Understanding the code > > - Since C++ programs always start at the `main()` function, we need to call our other code from there, so a `#include` statement is needed. - > - Some initial variables `x`, `y`, `oper`, and `result` are declared to store the first number, second number, operator, and final result, respectively. It is always good practice to give them some initial values to avoid undefined behavior, which is what is done here. + > - Some initial variables `x`, `y`, `oper`, and `result` are declared to store the first number, second number, operator, and final result, respectively. It's always good practice to give them some initial values to avoid undefined behavior, which is what is done here. > - The `Calculator c;` line declares an object named 'c' as an instance of the `Calculator` class. The class itself is just a blueprint for how calculators work; the object is the specific calculator that does the math. > - The `while (true)` statement is a loop. The code inside the loop continues to execute over and over again as long as the condition inside the `()` holds true. Since the condition is simply listed as **`true`**, it's always true, so the loop runs forever. To close the program, the user must manually close the console window. Otherwise, the program always waits for new input. > - The `cin` keyword is used to accept input from the user. This input stream is smart enough to process a line of text entered in the console window and place it inside each of the variables listed, in order, assuming the user input matches the required specification. You can modify this line to accept different types of input such as more than two numbers--though the `Calculate()` function would also need to be updated to handle this. @@ -643,11 +657,11 @@ Test the program again to make sure everything works properly. ## Debug the app -Since the user is free to type anything into the console window, let's make sure the calculator handles some input as expected. Instead of running the program, let's debug it instead, so we can inspect what it's doing in detail, step-by-step. +Since the user is free to type anything into the console window, let's make sure the calculator handles unexpected input. Instead of running the program, let's debug it instead, so we can inspect what it's doing step-by-step. ### Run the app in the debugger -1. Set a breakpoint on the `result = c.Calculate(x, oper, y);` line. To set the breakpoint, click next to the line in the gray vertical bar along the left edge of the editor window. A red dot appears. +1. In `CalcuatorTutorial.cpp`, set a breakpoint on the `result = c.Calculate(x, oper, y);` line. To set the breakpoint, click next to the line in the gray vertical bar along the left edge of the editor window. A red dot appears. :::image type="content" source="./media/calculator-set-breakpoint.gif" alt-text="Video showing the user setting a breakpoint on line 25: result = c.Calculate(x, oper, y);."::: @@ -669,7 +683,7 @@ Since the user is free to type anything into the console window, let's make sure ### Useful windows in the debugger -Whenever you debug your code, you may notice that some new windows appear. These windows can assist your debugging experience. Take a look at the **Autos** window. The **Autos** window shows you the current values of variables used at least three lines before and up to the current line. +When you debug your code, you may notice that some new windows appear. These windows can assist your debugging experience. Take a look at the **Autos** window. The **Autos** window shows you the current values of variables used at least three lines before and up to the current line. :::image type="complex" source="./media/calculator-autos.png" alt-text="Screenshot of the Visual Studio debugger Autos window."::: The value of oper is 47 '/', result is 5, x is 10, and y is 0. @@ -677,15 +691,15 @@ Whenever you debug your code, you may notice that some new windows appear. These To see all of the variables from that function, switch to the **Locals** window. You can modify the values of these variables while debugging, to see what effect they would have on the program. In this case, we leave them alone. - :::image type="complex" source="./media/calculator-locals.png" alt-text="Screenshot of the Visual Studio debugger Locals window."::: - The current values of the function's local variables are visible. The value of oper is 47 '/', result is 5, x is 10, and y is 0." + :::image type="complex" source="./media/calculator-locals.png" alt-text="Screenshot of the Locals window in Visual Studio, displaying the current values of local variables while debugging."::: + The value of oper is 47 '/', result is 0, x is 10, and y is 0. :::image-end::: You can also hover over variables in the code itself to see their current values where the execution is currently paused. Make sure the editor window is in focus by clicking on it first. :::image type="content" source="./media/calculator-hover-tooltip.gif" alt-text="Video demonstrating a tooltip that appears while hovering over the variable y. It displays y's current value, which is 0."::: -### To continue debugging +### Continue debugging 1. The yellow arrow on the left shows the current point of execution. The current line calls `Calculate`, so press **F11** to **Step Into** the function, which takes you into the body of the `Calculate` function. Be careful with **Step Into** because it steps into any functions on the line you're on, including standard library functions. It's fine to step into the standard library, but you may be more interested in focusing on your code instead of library code. @@ -697,17 +711,17 @@ You can also hover over variables in the code itself to see their current values Each line of code in the Calculate function is stepped over until control returns to the main function. The user then hovers over the variable named result to see its value, which is: inf." :::image-end::: - It looks like the program is doing what is expected: it takes the first number, and divides it by the second. On the `cout` line, hover over the `result` variable or take a look at `result` in the **Autos** window. Its value is `inf`, which doesn't look right, so let's fix it. The `cout` line just outputs whatever value is stored in `result`, so when you step one more line forward using **F10**, the console window displays: + It looks like the program is doing what's expected: it takes the first number, and divides it by the second. On the `cout` line, hover over the `result` variable or take a look at `result` in the **Autos** window. Its value is `inf`, which doesn't look right, so let's fix it. The `cout` line just outputs whatever value is stored in `result`, so when you step one more line forward using **F10**, the console window displays: :::image type="complex" source="./media/calculator-divide-by-zero-fail.png" alt-text="Screenshot of the Visual Studio Debug Console displaying the result of a division by zero operation."::: The app output: Please enter the operation to perform. Format: a+b | a-b | a*b | a/b. The user entered 5-0. The app output: Result is: 5. THe user entered 10/0. The app output: Result is: inf :::image-end::: - This result happens because division by zero is undefined, so the program doesn't have a numerical answer to the requested operation. + This result is because division by zero is undefined, so the program doesn't have a numerical answer for the requested operation. -### To fix the "divide by zero" error +### Fix the "divide by zero" error -Let's handle division by zero more gracefully, so a user can understand the problem. +Let's handle division by zero more gracefully so that it's easier for the user to understand the problem. 1. Make the following changes in *`CalculatorTutorial.cpp`*. (You can leave the program running as you edit, thanks to a debugger feature called **Edit and Continue**). The change is to add an `if` statement following `cin >> x >> oper >> y;` to check for division by zero and output a message to the user if it happens. Otherwise, the result is printed: @@ -750,7 +764,7 @@ Let's handle division by zero more gracefully, so a user can understand the prob } ``` -1. Now press **F5** once. Program execution continues all the way until it has to pause to ask for user input. Enter `10 / 0` again. Now, a more helpful message is printed. The user is asked for more input, and the program continues executing normally. +1. Press **F5** once. Program execution continues all the way until it has to pause to ask for user input. Enter `10 / 0` again. Now, a more helpful message is printed. The user is asked for more input, and the program continues executing normally. :::image type="content" source="./media/calculator-final-verification.gif" alt-text="Video of the Debug Console showing the final result after code changes. 10 / 0 is entered and the program displays 'Division by 0 exception'."::: @@ -770,7 +784,7 @@ Let's handle division by zero more gracefully, so a user can understand the prob - If it's still running, close the console window for the calculator app. -Congratulations! You've completed the code for the calculator app, and built and debugged it in Visual Studio. +Congratulations! You completed the code for the calculator app, and built and debugged it in Visual Studio. ## Next steps From fd6c2146441e7038a9100ce85f9165384c34f809 Mon Sep 17 00:00:00 2001 From: TylerMSFT Date: Thu, 21 Mar 2024 14:35:28 -0700 Subject: [PATCH 3/3] missed edit --- docs/get-started/tutorial-console-cpp.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/get-started/tutorial-console-cpp.md b/docs/get-started/tutorial-console-cpp.md index 485def63714..d0322a9d413 100644 --- a/docs/get-started/tutorial-console-cpp.md +++ b/docs/get-started/tutorial-console-cpp.md @@ -19,7 +19,7 @@ The usual starting point for a C++ programmer is a "Hello, world!" application t ## Create your app project -Visual Studio uses *projects* to organize the code for an app, and *solutions* to organize the project(s). A project contains all the options, configurations, and rules used to build an app. It also manages the relationship between all the project's files and any external files. To create your app, first, create a new project and solution. +Visual Studio uses *projects* to organize the code for an app, and *solutions* to organize one or more projects. A project contains all the options, configurations, and rules used to build an app. It also manages the relationship between all the project's files and any external files. To create your app, first, create a new project and solution. 1. Start Visual Studio--the Visual Studio Start dialog box appears. Select **Create a new project** to get started. @@ -146,7 +146,7 @@ A class is like a blueprint for an object that does something. In this case, we Two new files get added to your project. To save all your changed files at once, press **Ctrl+Shift+S**. It's a keyboard shortcut for **File** > **Save All**. There's also a toolbar button for **Save All**, an icon of two floppy disks, found beside the **Save** button. In general, it's good practice to do **Save All** frequently, so you don't miss any files when you save. - The **Add Class** wizard you used previously created `.h` and `.cpp` files that have the same name as the class. You can see a full list of your project files in the **Solution Explorer** window, visible on the side of the IDE. If the window isn't visible, you can open it from the menu bar: select **View** > **Solution Explorer**. + The **Add Class** wizard creates `.h` and `.cpp` files that have the same name as the class. You can see a full list of your project files in the **Solution Explorer** window, visible on the side of the IDE. If the window isn't visible, you can open it from the menu bar: select **View** > **Solution Explorer**. :::image type="complex" source="./media/calc-vs2019-solution-explorer.png" alt-text="Screenshot of the Visual Studio Solution Explorer window."::: The calculator tutorial project has a header files node containing Calculator.h. A Source Files node contains Calculator.cpp and CalculatorTutorial.cpp. Nodes for references, external dependencies, and resource files are visible but closed. @@ -171,7 +171,7 @@ A class is like a blueprint for an object that does something. In this case, we > - C++ code is organized into *header* (`.h`) files and *source* (`.cpp`) files. Several other file extensions are supported by various compilers, but these are the main ones to know about. Functions and variables are normally *declared*, that is, given a name and a type, in header files, and *implemented*, or given a definition, in source files. To access code defined in another file, you can use `#include "filename.h"`, where `filename.h` is the name of the file that declares the variables or functions you want to use. > - It's good practice to organize your code into different files based on what it does, so it's easy to find the code you need later. In our case, we define the `Calculator` class separately from the file containing the `main()` function, but we plan to reference the `Calculator` class in `main()`. -1. A green squiggle appears under `Calculate` because although the `Calculate` function has been *declared*, it hasn't been *defined*. Hover over `Calculate`, click the down arrow on the screwdriver that appears, and select **Create definition of 'Calculate' in `Calculator.cpp`**. +1. A green squiggle appears under `Calculate` because although the `Calculate` function is *declared*, it isn't *defined*. Hover over `Calculate`, click the down arrow on the screwdriver that appears, and select **Create definition of 'Calculate' in `Calculator.cpp`**. :::image type="content" source="./media/calc-vs2019-create-definition.png" alt-text="Screenshot of a screwdriver dropdown in the Visual Studio editor window. The option 'Create definition of Calculate in Calculator.cpp' is highlighted."::: @@ -213,7 +213,7 @@ A class is like a blueprint for an object that does something. In this case, we If you build and run the code again at this point, it will immediately exit after asking which operation to perform. So, modify the `main` function to do multiple calculations. -### To call the `Calculator` class member functions +### Call the `Calculator` class member functions 1. Update the `main` function in *`CalculatorTutorial.cpp`* as follows: @@ -321,7 +321,7 @@ You can also hover over variables in the code to see their current values at the 1. Continue using **F10** to **Step Over** each line until you get back to the `main()` function in the other file, and stop on the `cout` line. - It looks like the program is doing what's expected: it takes the first number, and divides it by the second. On the `cout` line, hover over the `result` variable or take a look at `result` in the **Autos** window. Its value `inf`, which doesn't look right, so let's fix it. The `cout` line just outputs whatever value is stored in `result`, so when you step one more line forward using **F10**, the console window displays: + The program is doing what's expected: it takes the first number, and divides it by the second. On the `cout` line, hover over the `result` variable or take a look at `result` in the **Autos** window. Its value `inf`, which doesn't look right, so let's fix it. The `cout` line just outputs whatever value is stored in `result`, so when you step one more line forward using **F10**, the console window displays: :::image type="complex" source="./media/calc-vs2019-divide-by-zero-fail.png" alt-text="Screenshot of the Visual Studio Debug Console displaying the result of a division by zero operation."::: The app output: Please enter the operation to perform. Format: a+b | a-b | a*b | a/b. The user entered 5-0. The app output: Result is: 5. THe user entered 10/0. The app output: Result is: inf @@ -400,7 +400,7 @@ Let's handle division by zero more gracefully so that it's easier for the user t ## The finished app -Congratulations! You've completed the code for the calculator app, built and debugged it, and added it to a repo, all in Visual Studio. +Congratulations! You completed the code for the calculator app, built and debugged it, and added it to a repo, all in Visual Studio. ## Next steps @@ -410,7 +410,7 @@ Congratulations! You've completed the code for the calculator app, built and deb ::: moniker range=" **New** > **Project**. The **New Project** window opens. 2. On the left sidebar, make sure **Visual C++** is selected. In the center, select **Windows Console Application**. @@ -562,7 +562,7 @@ A class is like a blueprint for an object that does something. In this case, we > - C++ code is organized into *header* (`.h`) files and *source* (`.cpp`) files. Several other file extensions are supported by various compilers, but these are the main ones to know about. Functions and variables are normally *declared*, that is, given a name and a type, in header files, and *implemented*, or given a definition, in source files. To access code defined in another file, you can use `#include "filename.h"`, where `filename.h` is the name of the file that declares the variables or functions you want to use. > - It's good practice to organize your code into different files based on what it does, so it's easy to find the code you need later. In our case, we define the `Calculator` class separately from the file containing the `main()` function, but we plan to reference the `Calculator` class in `main()`. -1. A green squiggle appears under `Calculate` because although the `Calculate` function has been *declared*, it hasn't been *defined*. Hover over `Calculate`, click the down arrow on the screwdriver that appears, and select **Create definition of 'Calculate' in `Calculator.cpp`**. A pop-up appears that gives you a peek of the code change that was made in the other file. The code was added to *`Calculator.cpp`*. +1. A green squiggle appears under `Calculate` because although the `Calculate` function is *declared*, it isn't *defined*. Hover over `Calculate`, click the down arrow on the screwdriver that appears, and select **Create definition of 'Calculate' in `Calculator.cpp`**. A pop-up appears that gives you a peek of the code change that was made in the other file. The code was added to *`Calculator.cpp`*. :::image type="content" source="./media/calculator-create-definition.gif" alt-text="Video showing using the light bulb dropdown to select Create definition of Calculate in Calculator.cpp."::: @@ -600,7 +600,7 @@ A class is like a blueprint for an object that does something. In this case, we If you build and run the code again at this point, it will still exit after asking which operation to perform. Next, modify the `main` function to do some calculations. -### To call the Calculator class member functions +### Call the Calculator class member functions 1. Now let's update the `main` function in *`CalculatorTutorial.cpp`*: @@ -711,7 +711,7 @@ You can also hover over variables in the code itself to see their current values Each line of code in the Calculate function is stepped over until control returns to the main function. The user then hovers over the variable named result to see its value, which is: inf." :::image-end::: - It looks like the program is doing what's expected: it takes the first number, and divides it by the second. On the `cout` line, hover over the `result` variable or take a look at `result` in the **Autos** window. Its value is `inf`, which doesn't look right, so let's fix it. The `cout` line just outputs whatever value is stored in `result`, so when you step one more line forward using **F10**, the console window displays: + The program is doing what's expected: it takes the first number, and divides it by the second. On the `cout` line, hover over the `result` variable or take a look at `result` in the **Autos** window. Its value is `inf`, which doesn't look right, so let's fix it. The `cout` line just outputs whatever value is stored in `result`, so when you step one more line forward using **F10**, the console window displays: :::image type="complex" source="./media/calculator-divide-by-zero-fail.png" alt-text="Screenshot of the Visual Studio Debug Console displaying the result of a division by zero operation."::: The app output: Please enter the operation to perform. Format: a+b | a-b | a*b | a/b. The user entered 5-0. The app output: Result is: 5. THe user entered 10/0. The app output: Result is: inf