C++ Program Structure

This tutorial describes program structure of C++ program.

Basically, a C++ program involves the following section:
  • Documentation
  • Preprocessor Statements
  • Global Declarations
  • The main() function
    • Local Declarations
    • Program Statements & Expressions
  • User Defined Functions

Let's begin with a simple C++ program code.

C++ Program which Outputs a Line of Text

* File: main.cpp
* Author: Gautam
* Created on April 28, 2018

#include <iostream> 

int main()
 std::cout<<"This is my first C++ Program.";
 std::cout<<std::endl<<"and its very easy";
Program Output:


The above example has been used to print text on the screen.

Let's look into various parts of the above C++ program.

/* Comments */Comments are a way of explaining what makes a program. Comments are ignored by the compiler and used by others to understand the code.


This is a comment block, which is ignored by the compiler. Comment can be used anywhere in the program to add info about program or code block, which will be helpful for developers to easily understand the existing code in the future.

#include <iostream>This is a preprocessor directive. It tells the preprocessor to include the contents of iostream header file in the program before compilation. This file is required for input-output statements.
int/voidint/void is a return value, which will be explained in a while.
main()The main() is the main function where program execution begins. Every C++ program must contain only one main function.


This is a main function, which is the default entry point for every C++ program and the void in front of it indicates that it does not return a value.

BracesTwo curly brackets "{…}" are used to group all statements together.


Curly braces which shows how much the main() function has its scope.

std::cout<<"This is my first C++ Program";

The above line is a statement in C++. A statement must always terminate with a semicolon; otherwise, it causes a syntax error. This statement introduces two new features of C++ language, cout and << operator.

You will also notice that the words are inside inverted commas because they are what is called a string. Each letter is called a character and a series of characters that is grouped together is called a string. Strings must always be put between inverted commas.

We used std:: before cout. This is required when we use #include <iostream >.

It specifies that we are using a name cout which belongs to namespace std. A namespace is a new concept introduced by ANSI C++ which defines the scope of identifiers which are used in the program. std is the namespace where C++ standard libraries are defined.

Operator << is the insertion stream operator. It sends contents of the variable on its right to the object on its left. In our case, the right operand is the string "This is my first c++ Program" and left operand is a cout object. So it sends the string to the cout object and cout object then displays it on the output screen.


using namespace std;

If you specify using namespace std then you don't have to put std:: throughout your code. The program will know to look in the std library to find the object. Namespace std contains all the classes, objects and functions of the standard C++ library.

* File: main.cpp
* Author: Gautam
* Created on October 16, 2011, 4:09 PM

#include <iostream>
using namespace std;

int main()
 cout<<"This is my first C++ Program.";
 cout<<std::endl<<"and its very easy";

Return Statement

return 0At the end of the main function returns value 0.
In new C++ you have to use:
  • int main() instead of void main()
  • After you import your headers you required to use using namespace std;
  • There is no header file like iostream.h, you only required to use this as #include <iostream>

void main() and iostream.h is only valid for Turbo C++.

Here are few other related articles for you to read:

Subscribe Updates via Email

Join 49,000+ W3schools lovers and get all the latest tutorials, programs, algorithms in your inbox.