1. Getting Started - Write our First Hello-world C++ Program
Let us begin by writing our first C++ program that prints the message "hello, world" on the display console.
Step 1: Write the Source Code: Enter the following source codes using a programming text editor (such as NotePad++ for Windows or gedit for UNIX/Linux/Mac) or an Interactive Development Environment (IDE) (such as CodeBlocks, Eclipse, NetBeans or Visual Studio - Read the respective "How-To" article on how to install and get started with these IDEs).
Do not enter the line numbers (on the left panel), which were added to help in the explanation. Save the source file as "
hello.cpp". A C++ source file should be saved with a file extension of ".cpp". You should choose a filename which reflects the purpose of the program.1 | /* |
Step 2: Build the Executable Code: Compile and Link (aka Build) the source code "
hello.cpp" into executable code ("hello.exe" in Windows or "hello" in UNIX/Linux/Mac).- On IDE (such as CodeBlocks), push the "Build" button.
- On Text editor with the GNU GCC compiler, start a CMD Shell (Windows) or Terminal (UNIX/Linux/Mac) and issue these commands:
// Windows (CMD shell) - Build "hello.cpp" into "hello.exe"
where
> g++ -o hello.exe hello.cpp
// UNIX/Linux/Mac (Bash shell) - Build "hello.cpp" into "hello"
$ g++ -o hello hello.cppg++is the name of GCC C++ compiler;-ooption specifies the output filename ("hello.exe" for Windows or "hello" for UNIX/Linux/Mac); "hello.cpp" is the input source file.
Step 3: Run the Executable Code: Execute (Run) the program.
- On IDE (such as CodeBlocks), push the "Run" button.
- On Text Editor with GNU GCC compiler, issue these command from CMD Shell (Windows) or Terminal (UNIX/Linux/Mac):
// Windows (CMD shell) - Run "hello.exe" (.exe is optional)
> hello
hello, world
// UNIX/Linux/Mac (Bash shell) - Run "hello" (./ denotes the current directory)
$ ./hello
hello, world
Brief Explanation of the Program
/* ...... */
// ... until the end of the line
These are called comments. Comments are NOT executable and are ignored by the compiler; but they provide useful explanation and documentation to your readers (and to yourself three days later). There are two kinds of comments:
// ... until the end of the line
These are called comments. Comments are NOT executable and are ignored by the compiler; but they provide useful explanation and documentation to your readers (and to yourself three days later). There are two kinds of comments:
- Multi-line Comment: begins with
/*and ends with*/. It may span more than one lines (as in Lines 1-3). - End-of-line Comment: begins with
//and lasts until the end of the current line (as in Lines 4, 7, 8, 9 and 10).
#include <iostream>
using namespace std;The "
using namespace std;The "
#include" is called a preprocessor directive. Preprocessor directives begin with a # sign. They are processed before compilation. The directive "#include <iostream>" tells the preprocessor to include the "iostream" header file to support input/output operations. The "using namespace std;" statement declares std as the default namespace used in this program. The names cout and endl, which is used in this program, belong to the std namespace. These two lines shall be present in all our programs. I will explain their meaning later.int main() { ... body ... }
defines the so-called
defines the so-called
main() function. The main() function is the entry point of program execution. main() is required to return an int (integer).cout << "hello, world" << endl;
"
"
cout" refers to the standard output (or Console OUTput). The symbol << is called the stream insertion operator (or put-to operator), which is used to put the string "hello, world" to the console. "endl" denotes the END-of-Line or newline, which is put to the console to bring the cursor to the beginning of the next line.return 0;
terminates the
terminates the
main() function and returns a value of 0 to the operating system. Typically, return value of 0 signals normal termination; whereas value of non-zero (usually 1) signals abnormal termination. This line is optional. C++ compiler will implicitly insert a "return 0;" to the end of the main() function.



0 Comments