Stephen Davis

C++ For Dummies

Notify me when the book’s added
To read this book, upload an EPUB or FB2 file to Bookmate. How do I upload a book?
  • Voldemar Varkkihas quoted9 years ago
    The problem with this approach is that you tend to learn very little about
  • Voldemar Varkkihas quoted9 years ago
    This will copy all of the sources used in the book to the directory C:\CPP_Programs_fro
  • Voldemar Varkkihas quoted9 years ago
    Chapter 1
    Writing Your First C++ Program

    In This Chapter
    Finding out about C++
    Installing Code::Blocks on Windows, Ubuntu Linux, or Macintosh OS X
    Creating your first C++ program
    Executing your program
    Okay, so here we are: No one here but just you and me. Nothing left to do but get started. Might as well lay out a few fundamental concepts.
    A computer is an amazingly fast but incredibly stupid machine. A computer can do anything you tell it (within reason), but it does exactly what it’s told — nothing more and nothing less.
    Perhaps unfortunately for us, computers don’t understand any reasonable human language — they don’t speak English either. Okay, I know what you’re going to say: “I’ve seen computers that could understand English.” What you really saw was a computer executing a program that could meaningfully understand English.
    Computers understand a language variously known as computer language or machine language. It’s possible but extremely difficult for humans to speak machine language. Therefore, computers and humans have agreed to sort of meet in the middle, using intermediate languages such as C++. Humans can speak C++ (sort of), and C++ can be converted into machine language for the computer to understand.
    Grasping C++ Concepts

    A C++ program is a text file containing a sequence of C++ commands put together according to the laws of C++ grammar. This text file is known as the source file (probably because it’s the source of all frustration). A C++ source file normally carries the extension .CPP just as an Adobe Acrobat file ends in .PDF or an MS-DOS (remember that?) batch file ends in .BAT.
    The point of programming in C++ is to write a sequence of commands that can be converted into a machine-language program that actually does what we want done. This conversion is called compiling and is the job of the compiler. The machine code that you wrote must be combined with some setup and teardown instructions and some standard library routines in a process known as linking. Together, compiling and linking are known as building. The resulting machine-executable files carry the extension .EXE in Windows. They don't carry any particular extension in Linux or Macintosh.
    That sounds easy enough — so what’s the big deal? Keep going.
    To write a program, you need two specialized computer programs. One (an editor) is what you use to write your code as you build your .CPP source file. The other (a compiler) converts your source file into a machine-executable file that carries out your real-world commands (open spreadsheet, make rude noises, deflect incoming asteroids, whatever).
    Nowadays, tool developers generally combine compiler and editor into a single package — a development environment. After you finish entering the commands that make up your program, you need only click a button to build the executable file.
    Fortunately, there are public-domain C++ environments. I use one of them in this book — the Code::Blocks environment. This editor will work with a lot of different compilers, but the version of Code::Blocks combined with the GNU gcc compiler used to write this book is available for download for Windows, Macintosh, and various versions of Linux, as described in the installation section of this chapter.
    Although Code::Blocks is public domain, you’re encouraged to pay some small fee to support its further development. You don’t have to pay to use Code::Blocks, but you can contribute to the cause if you like. See the Code::Blocks website for details.
    I have tested the programs in this book with Code::Blocks 13.12 which comes bundled with gcc version 4.7.1. This version of gcc implements most of the C++ 2011 standard.
    You can use different versions of gcc or even different compilers if you prefer, but they may not implement the complete '11 standard. For that reason, 2011 extensions are marked with the '11 icon seen here.
    The gcc compiler does not implement any of the extensions added in the C++ 2014 standard as of this writing, but I have included them, where applicable, because some day it will.
    Okay, I admit it: This book is somewhat Windows-centric. I have tested all of the programs in the book on Windows 2000/XP/Vista/7/8, Ubuntu Linux, and Macintosh OS X. I flag any differences between operating systems in the text. In addition, I include installation instructions for each of the above three operating systems in this chapter. Versions of Code::Blocks and gcc are available for other flavors of Linux and other versions of the Macintosh OS. The programs should work with these, as well.
    The Code::Blocks/gcc package generates 32-bit programs, but it does not easily support creating “windowed” programs. The programs in this book run from a command line prompt and write out to the command line. As boring as that may sound, I strongly recommend that you work through the examples in this book first to learn C++ before you tackle windowed development. C++ and windows programming are two separate things and (for the sake of your sanity) should remain so in your mind.
    Follow the steps in the next section to install Code::Blocks and build your first C++ program. This program’s task is to convert a temperature value entered by the user from degrees Celsius to degrees Fahrenheit.
    Installing Code::Blocks

    The www.dummies.com/extra/cplusplus website includes the most recent version of the Code::Blocks environment at the time of this writing for Windows, Ubuntu Linux, and Macintosh OS X 10.6 or later. Follow the installation instructions below that apply to your operating system.
    Windows
    The Code::Blocks environment comes in an easy-to-install, compressed executable file that is compatible with all versions of Windows after Windows 2000. Here’s the rundown on installing the environment:
    Download the executable codeblocks-13.12.mingw-setup.exe from www.dummies.com/extra/cplusplus.
    Save the executable to your desktop or some other place that you can easily find it.
    This includes the 4.71 version of the GCC compiler. This is not the newest version of GCC but it's the version recommended by Code::Blocks. If you want the newer but perhaps slightly buggy 4.81 version, you can download and install codeblocks-13.12.mingw-setup-TDM-GCC-481.exe instead. I tested the programs in this book with both versions but I used 4.71 during its writing.
    Double-click the program once it has completed downloading.
    Depending on what version of Windows you’re using, you may get the ubiquitous “An unidentified program wants access to your computer” warning pop-up. If so, click Allow to get the installation ball rolling.
    Click Next after closing all extraneous applications as you are warned in the Welcome dialog box to the Code::Blocks Setup Wizard.
    Read the End User License Agreement (commonly known as the EULA) and then click I Agree if you can live with its provisions.
    It’s not like you have much choice — the package really won’t install itself if you don’t accept. Assuming you do click OK, Code::Blocks opens a dialog box showing the installation options. The default options are fine.
    Click the Next button.
    The installation program allows you to install only some subset of the features. You must select at least the Default Install and the MinGW Compiler Suite. The default is to install everything — that's the best choice.
    If the MinGW Compiler Suite is not an option, then you must have downloaded a version of Code::Blocks that does not include gcc. This version will not work correctly.
    Click Install and accept the default Destination Folder.
    Code::Blocks commences to copying a whole passel of files to your hard drive. Code::Blocks then asks “Do you want to run Code::Blocks now?”
    Click Yes to start Code::Blocks.
    Code::Blocks now asks which compiler you intend to use. The default is GNU GCC Compiler, which is the proper selection.
    From within Code::Blocks, choose Settings⇒Compiler.
    Select the Compiler Flags tab.
    Make sure that the following three flags are selected, as shown in Figure 1-1:
    Enable All Compiler Warnings
    Have g++ Follow the Coming C++0x ISO C++ Language Standard
    Have g++ Follow the C++11 ISO C++ Language Standard
    The C++ 2011 standard was originally supposed to be the C++ 2008 or 2009 standard. Since it wasn't clear, the standard became known as the 0x standard. The standard wasn't completely accepted until 2011. Within gcc, C++0x and C++11 refer to the same standard.
    Select the Toolchain Executables tab. Make sure that it appears like Figure 1-2.
    The default location for the gcc compiler is the MinGW\bin subdirectory of the Code::Blocks directory.

    Figure 1-1: Ensure that the Enable All Compiler Warnings and the C++ 2011 flags are set.
    If the default location is empty, then Code::Blocks does not know where the gcc compiler is, and it will not be able to build your programs. Make sure that you downloaded a version of Code::Blocks that includes gcc and that you included MinGW during the installation. If you are using an existing gcc compiler that you've already installed, then you will need to point Code::Blocks to where it is located on your hard drive.
    Close the Settings dialog box.
    Click Next in the Code::Blocks Setup dialog box and then click Finish to complete the setup program.
    The setup program exits.
    Ubuntu Linux
    Code::Blocks does not include gcc on Linux, so installation is a two-step process. First you will need to install gcc. Then you can install Code::Blocks.

    Figure 1-2: Ensure that the Compiler's installation directory is correct.
    Installing gcc
    The gcc compiler is readily available for Linux. Follow these steps to install it:
    Enter the following commands from a command prompt:

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install g++
    The standard Ubuntu Linux distribution includes a GNU C compiler, but it does not include the C++ extensions and, in particular, not the C++ 2011 standard extensions. The first two commands update and upgrade the tools you already have. The third command installs C++.
    Enter the following command from a command prompt:

    gcc --version
    My Ubuntu 13.04 downloaded GNU C++ version 4.7.3. You'll be fine with version 4.7.1 or later. If you have an earlier version, some of the C++ 2011 features may not work properly, but otherwise, it should be okay.
    If you are using Debian Linux, the commands are the same. If you’re using Red Hat Linux, replace the command apt-get with yum so that you end up with
    sudo yum install g++
    Installing Code::Blocks
    Fortunately for all concerned, an Ubuntu-ready version of Code::Blocks is available in the Ubuntu Software Center. Many other versions of Linux include something similar to the Software Center. Follow these steps to install Code::Blocks:
    Click on the Software Center icon on the Ubuntu desktop.
    Select Code::Blocks from the list of available software.
    This will start the installation process.
    Code::Blocks searches your hard drive for your C++ compiler. It should be able to find it without a problem, but if it doesn’t, then execute the following steps.
    Start Code::Blocks.
    Select Settings⇒Compiler.
    Select the Compiler Flags tab.
    Make sure that the following three flags are selected, as shown in Figure 1-1:
    Enable All Compiler Warnings
    Have g++ Follow the Coming C++0x ISO C++ Language Standard
    Have g++ Follow the C++11 ISO C++ Language Standard
    Select the Toolchain Executables tab.
    Select the “…” button.
    Navigate to /usr, unless you installed your gcc compiler someplace other than the default location of /user/bin.
    The “C compiler” should be gcc, the “C++ compiler” should be g++ and the “Linker for dynamic libs” should be g++.
    Select OK to close the dialog box.
    Macintosh
    The Macintosh version of Code::Blocks relies on the Xcode distribution from Apple for its compiler. I have divided the installation into three separate parts for this reason.
    Installing Xcode
    Xcode is a free development package offered by Apple that you will need. Follow these steps to install it first:
    Open the Safari browser and go to http://developer.apple.com.
    Click on Download Xcode to get the most recent version.
    This will open the Xcode download dialog box shown in Figure 1-3.

    Figure 1-3: The Xcode download dialog box allows you to install Xcode for free.
    Click on the Free icon to change it to Install App. Click on it again.
    Enter your system password (the one you log in with when your Mac boots up).
    The icon changes to Installing.
    The download and installation takes quite some time, as Xcode is a little over 2GB as of this writing.
    Installing the Command Line Tools
    As big as Xcode is, you would think that it has everything you need, but you would be wrong. You need one more package from Apple to make your joy complete and to get a working gcc compiler on your Macintosh. Follow these steps to install the Command Line Tools for Xcode:
    Open the Safari browser and go to http://developer.apple.com/downloads.
    You may be asked to sign up for an Apple Developer ID. Go ahead and do so — it's free.
    Search for Command Line Tools for Xcode. Select the application shown in Figure 1-4. Click on the Download icon.
    Double-click on the mpkg package that downloads to install it.
    Accept all of the default values.
    The installation should finish with Installation Was Successful.
    Installing Code::Blocks
    Now, you can finish your installation by downloading the Code::Blocks editor:
    Open the Safari browser and go to www.codeblocks.org/downloads.
    Click on Downloads⇒Binaries.
    Figure 1-4: You must install both Xcode and the Command Line Tools for Xcode to get the gcc compiler for Macintosh.
    Click on Mac OS X.
    Select either the BerliOS or Sourceforge.net mirror for the most recent version.
    At the time of this writing, CodeBlocks-13.12 -mac.zip was the most recent.
    Install the downloaded Zip file into the Applications folder.
    If you have never installed an application from a third-party site, you may need to execute these extra steps before you can do so:
    Click on System Preferences.
    Click on Security and Privacy.
    Click the padlock in the lower-left corner of the dialog box to allow changes.
    Click on Allow Applications Downloaded from: Anywhere, as shown in Figure 1-5.
    Once you have completed the installation of Code::Blocks, you may choose to return to this dialog box and restore the settings to Mac App Store.

    Figure 1-5: You will need to allow third-party applications to be installed before you can install Code::Blocks on your Macintosh.
    Double-click on the Code::Blocks icon.
    The first time you do this, the Mac OS will ask, “Are you sure you want to open it?”
    Select Don't Warn Me When Opening Applications on This Disk Image and click Open.
    Code::Blocks should start and find the gcc compiler installed with the Command Line Tools.
    Select the gcc compiler, as shown in Figure 1-6. Click on Set as Default and then click on OK to continue starting Code::Blocks.
    Code::Blocks will open with a banner page followed by a menu across the top of the dialog box.
    Select Settings⇒Compiler, then click the Have g++ Follow the Coming C++0x ISO C++ Language Standard. Click on OK to close the dialog box.
    You are now ready to build your first C++ program.

    Figure 1-6: Code::Blocks automatically finds the gcc compiler the first time you execute it.
    Creating Your First C++ Program

    In this section, you create your first C++ program. You enter the C++ code into a file called CONVERT.CPP and then convert the C++ code into an executable program.
    Creating a project
    The first step to creating a C++ program is to create what is known as a project. A project tells Code::Blocks the names of the .CPP source files to include and what type of program to create. Most of the programs in the book will consist of a single source file and will be command-line style:
    Start up the Code::Blocks tool.
    From within Code::Blocks, choose File⇒New⇒Project.
    Select the Console Application icon and then click Go.
    Select C++ as the language you want to use from the next dialog box. Click Next.
    Code::Blocks and gcc also support plain ol’ C programs.
    In the Folder to Build Project In field, select the “…” icon.
    Click on Computer and then the C: drive on Windows.
    On Linux and Macintosh, you can select the Desktop.
    Select the Make New Folder button at the lower left of the screen.
    Name the new folder CPP_Programs_from_Book.
    The result should look like Figure 1-7.

    Figure 1-7: Put your project in the C:\CPP_Programs_from_Book folder on Windows.
    In the Project Title field, type the name of the project, in this case Conversion.
    The resulting screen is shown in Figure 1-8 on Windows. The Linux and Macintosh version look the same except for the path.

    Figure 1-8: I created the project Conversion for the first program.
    Click Next.
    The next dialog box gives you the option of creating an application for testing or the final version. The default is fine.
    Click Finish to create the Conversion project.
    Entering the C++ code
    The Conversion project that Code::Blocks creates consists of a single, default main.cpp file that displays the message “Hello, world”. The next step is to enter our program:
    In the Management dialog box on the left, double-click main.cpp, which is under Sources, which is under Conversion.
    Code::Blocks opens the empty main.cpp program that it created in the code editor, as shown in Figure 1-9.

    Figure 1-9: The Management dialog box displays a directory structure for all available programs.
    Edit main.cpp with the following program exactly as written.
    Don’t worry too much about indentation or spacing — it isn’t critical whether a given line is indented two or three spaces, or whether there are one or two spaces between two words. C++ is case sensitive, however, so you need to make sure everything is lowercase.
    You can cheat by using the files at www.dummies.com/extra/cplusplus, as described in the next section.
    //
    // Conversion - Program to convert temperature from
    // Celsius degrees into Fahrenheit:
    // Fahrenheit = Celsius * (212 - 32)/100 + 32
    //
    #include
    #include
    #include
    using namespace std;

    int main(int nNumberofArgs, char* pszArgs[])
    {
    // enter the temperature in Celsius
    int celsius;
    cout << "Enter the temperature in Celsius:";
    cin >> celsius;

    // calculate conversion factor for Celsius
    // to Fahrenheit
    int factor;
    factor = 212 - 32;

    // use conversion factor to convert Celsius
    // into Fahrenheit values
    int fahrenheit;
    fahrenheit = factor * celsius/100 + 32;

    // output the results (followed by a NewLine)
    cout << "Fahrenheit value is:";
    cout << fahrenheit << endl;

    // wait until user is ready before terminating program
    // to allow the user to see the program results
    cout << "Press Enter to continue..." << endl;
    cin.ignore(10, '\n');
    cin.get();
    return 0;
    }
    Choose File⇒Save to save the source file.
    I know that it may not seem all that exciting, but you’ve just created your first C++ program!
fb2epub
Drag & drop your files (not more than 5 at once)