Read an Excerpt
C++ For Dummies
By Stephen R. Davis John Wiley & Sons
Copyright © 2014 John Wiley & Sons, Ltd
All rights reserved.
ISBN: 978-1-118-82377-4
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.
C++ '11
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.
C++ '14
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.
WARNING!
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:
1. 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.
TIP
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-setupTDM-GCC-481.exe instead. I tested the programs in this book with both versions but I used 4.71 during its writing.
2. Double-click the program once it has completed downloading.
3. 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.
4. Click Next after closing all extraneous applications as you are warned in the Welcome dialog box to the Code::Blocks Setup Wizard.
5. 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.
6. 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.
WARNING!
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.
7. 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?"
8. 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.
9. From within Code::Blocks, choose Settings-Compiler.
10. Select the Compiler Flags tab.
11. 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.
12. 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.
WARNING!
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.
13. Close the Settings dialog box.
14. 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.
Installing gcc
The gcc compiler is readily available for Linux. Follow these steps to install it:
1. 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++.
2. 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.
TIP
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:
1. Click on the Software Center icon on the Ubuntu desktop.
2. 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.
3. Start Code::Blocks.
4. Select Settings-Compiler.
5. Select the Compiler Flags tab.
6. 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
7. Select the Toolchain Executables tab.
8. Select the "..." button.
9. Navigate to /usr, unless you installed your gcc compiler someplace other than the default location of /user/bin.
10. The "C compiler" should be gcc, the "C++ compiler" should be g++ and the "Linker for dynamic libs" should be g++.
11. 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:
1. Open the Safari browser and go to http://developer.apple.com.
2. Click on Download Xcode to get the most recent version.
This will open the Xcode download dialog box shown in Figure 1-3.
3. Click on the Free icon to change it to Install App. Click on it again.
4. 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:
1. 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.
2. Search for Command Line Tools for Xcode. Select the application shown in Figure 1-4. Click on the Download icon.
3. Double-click on the mpkg package that downloads to install it.
4. 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:
1. Open the Safari browser and go to www.codeblocks.org/downloads.
2. Click on Downloads-Binaries.
3. Click on Mac OS X.
4. 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.
5. 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:
a. Click on System Preferences.
b. Click on Security and Privacy.
c. Click the padlock in the lower-left corner of the dialog box to allow changes.
d. 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.
6. 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?"
7. 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.
8. 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.
9. 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.
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.
(Continues...)
Excerpted from C++ For Dummies by Stephen R. Davis. Copyright © 2014 John Wiley & Sons, Ltd. Excerpted by permission of John Wiley & Sons.
All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.