The C++ programming language was created by Bjarne Stroustrup and his team at Bell Laboratories (AT&T, USA) to help implement simulation projects in an object-oriented and efficient way. The earliest versions, which were originally reffered to as "C with classes", date back to 1980. As the name C++ implies, C++ was derived from the C programming language and ++ is the increment operator in C.

As early as 1989 and ANSI Committee (American National Standard Institute) was founded to standardize the C++ programming language. The aim was to have as many compiler vendors and software developers as possible agree on a unified description of the language in order to avoid the confusion caused by a variety of dialects.

In 1998 the ISO (International Organization for Standardization) approved a standard for C++ (ISO/IEC 14882).

Characteristics of C++

C++ is not a purely object-oriented language but a hybrid that contains the functionality of the C programming language. This means that you have all the features that are available in C:
  • universally usable modular programs
  • efficient, close to the machine programming
  • portable programs for various platforms
The large quantities of existing C source code can also be used in C++ programs. C++ supports the concepts of object-oriented programming (OOP) which are:
  • data abstraction, that is, the creation of classes to describe objects
  • data encapsulation, for controlled access to object data
  • inheritance, by creating derived classes (including multiple derived classes)
  • polymorphism (Greek for multiform), that is, the implementation of instructions that can have varying effects during program execution.
Various language elements were added to C++, such as references, templates, and exception handling. Even though these elements of the language are not strictly object-oriented programming features, they are important for efficient program implementation.

Traditional Procedural Programming

In traditional procedural programming, data and functions (subroutines, procedures) are kept separate from the data they process. This has a significant effect on the way a program handles data:
  • the programmer must ensure that data are initialized with suitable values before use and that suitable data are passed to a function when it is called
  • if the data representation is changed, eg. if a record is extended, the corresponding functions must also be modified.
Both of these points can lead to errors and neither support low program maintenance requirements.

Objects

Object-oriented programming shifts the focus of attention to the objects, that is, to the aspects on which the problem is centered. A program designed to maintain bank accounts would work with data such as balances, credit limits, transfers, interest calculations, and so on. An object representing an account in a program will have properties and capacities that are important for account management.

OOP objects combine data (properties) and functions (capacities). A class defines a certain object type by defining both the properties and the capacities of the objects of that type. Objects communicate by sending each other "messages", which in turn activate another object's capacities.

Advantages of OOP

Object-oriented programming offers several major advantages to software development:
  • reduced susceptibility to errors : an object controls access to its own data. More specifically, an object can reject erroneous access attempts
  • easy re-use : objects maintain themselves and can therefore be used as building blocks for other programs
  • low maintenance requirement : an object type can modify its own internal data representation without requiring changes to the application


Basic structure of C++ program

#include <iostream> 
using namespace std;

int main()
{
	statements;
        ......................
 	...................... 
}

We will learn to write different C++ programs, you can find it in the Examples menu.