6 Overview of C++
combining all the individual object files into an executable file is called linking.
The steps in the compilation process are illustrated in Figure 1-2.
As noted in the discussion of the HelloWorld program earlier in this chapter,
the specific details of the compilation process vary from one machine to another.
There is no way that a general textbook like this can tell you exactly what
commands you should use to run a program on your system. The good news is that
the C++ programs themselves will look the same. One of the advantages of
programming in a higher-level language like C++ is that doing so allows you to
ignore the particular characteristics of the hardware and create programs that will
run on many different machines.
1.3 The structure of a C++ program
The best way to get a feeling for the C++ programming language is to look at some
sample programs, even before you understand the details of the language. The
HelloWorld program is a start, but it is so simple that it doesn’t include many of
the features you’d expect to see in a program. Since this book is designed for a
second course in computer science, you’ve almost certainly written programs that
read input from the user, store values in variables, use loops to perform repeated
calculations, and make use of subsidiary functions to simplify the structure of the
FIGURE 1-2 The compilation process
source file object file
library file
executable file
compiler
linker
/*
* File: HelloWorld.cpp
* --------------------
* This file is adapted from the example
* on page 1 of Kernighan and Ritchie’s
* book The C Programming Language.
*/
using namespace std;
#include <iostream>
int main() {
cout << "hello, world" << endl;
return 0;
}
10011111111000111100111011110100111101100
11010011011100101110111000111001111010100
11100000010000111000000110111110001010111
10001010111010010001000110011011100010010
11000100101011101001011011000101101111101
10110111110111011111101100110110111001110
11100111000111111101000111110001110111010
11110011111010111101110100001111011101010
11011101000011111101010011100101111011111
10111101111101011101111110100010101000000
11011110011011101000011100011111001010010
10101000011110011100101000100110111010111
10110101110111011101011110001001111110010
11111111110011111100100111011011010000100
11010111001111110001101010010111101000010
10001100111001011101000000111110110100000
10111011111101011111111101001110100000111
10100111101011001110101100000101111010000
10010011011000111011010100010000110101101
10111010110111010111010110111011111110001
11000010011100111110010000100000101110110
10001100011111101010111000101011101011100
11010011011100101011010001001111100000110
11111110111001111000001001010010000100100
11000111110110110000101100110011010010100
10011111010010011100010101000010010010111
11111000000000101100110101111111011010100
10100000011000001100001000001101111000011
10101101110001001010110111000100110010111
11010101111011111111011110011100111101001
10011111111000111100111011110100111101100
11010011011100101110111000111001111010100
11100000010000111000000110111110001010111
10001010111010010001000110011011100010010
11000100101011101001011011000101101111101
10110111110111011111101100110110111001110
11100111000111111101000111110001110111010
11110011111010111101110100001111011101010
11011101000011111101010011100101111011111
10111101111101011101111110100010101000000
11011110011011101000011100011111001010010
10101000011110011100101000100110111010111
10110101110111011101011110001001111110010
11111111110011111100100111011011010000100
11010111001111110001101010010111101000010
10001100111001011101000000111110110100000
10111011111101011111111101001110100000111
10100111101011001110101100000101111010000
10010011011000111011010100010000110101101
10111010110111010111010110111011111110001
11000010011100111110010000100000101110110
10001100011111101010111000101011101011100
11010011011100101011010001001111100000110
11111110111001111000001001010010000100100
11000111110110110000101100110011010010100
10011111010010011100010101000010010010111
11111000000000101100110101111111011010100
10100000011000001100001000001101111000011
10101101110001001010110111000100110010111
11010101111011111111011110011100111101001