Following are the general OOP concepts:
1. Data Abstraction: Abstraction refers to the act of representing essential features without including the background details or explanations. Abstraction is implemented through public members of a class, as the outside world is given only the essential and necessary information through public members, rest of the things remain hidden.
2. Data Encapsulation: The wrapping up of data and operations/functions (that operate o the data) into a single unit (called class) is known as Encapsulation. Encapsulation is implemented with the help of a class as a class binds together data and its associated function under one unit.
3. Modularity: The act of partitioning a program into individual components is called modularity. C++ implements modularity through separately compiled files. The traditional practice in the C++ community is to place module interface in files named with a .h suffix; these are called header files which can be used through #include directive.
4. Inheritance: Inheritance is the capability of one class of things to inherit capabilities or properties from another class. Inheritance is implemented in C++ by specifying the name of the (base) class from which the class being defined (the derived class) has to inherit from.
5. Polymorphism: Polymorphism is the ability for a message or data to be processed in more than one form. C++ implements polymorphism through virtual functions, overloaded functions and overloaded operators.