OOP Basic Definitions

Object

Object is an entity able to save a state (information) and which offers a number of operations (behavior) to either examine or affect this state.
[Hari Mohan Pandey]

Class

Class is a definition, a template or a mold to enable the creation of new objects and is, therefore, a description of the common characteristics of several objects.
[Hari Mohan Pandey]
Example of Class
class A {
    private:
        GetNumber();
    public:
        int number = 0;
}

Inheritance

Inheritance is a mechanism of reusing and extending classes without modifying them, thus producing hierarchical relationsships between then.
[IBM]
Example of Inheritance
class A {
    public:
        int x;
};

class B : public A {
    public:
        int y;
};

class C : B { };
Class B is a direct base class of C. Class A is a direct base class of B. Class A is an indirect base class of C. (Class C has x and y as its data members.)

Abstract Class

Abstract Classes is a class that is designed to be specifically used as a base class. An abstract class contains at least one pure virtual function. You declare a pure virtual function by using a pure specifier (= 0) in the declaration of a virtual member function in the class declaration.
[IBM]
Virtual Functions
By default, C++ matches a function call with the correct function definition at compile time. This is called static binding. You can specify that the compiler match a function call with the correct definition at run time; this is called dynamic binding. You declare a function with the keyword virtual if you want the compiler to use dynamic binding for that specific function.
[IBM]
Example of Abstract Class
class AB {
    public:
        virtual void f() = 0;
}
Polymorphism and Polymirphic Functions
Polymirphic functions are functions that can be applied to objects of more than one type.
[IBM]
Multiple Inheritance
You can derive from any number of base classes. Deriving a class from more than one direct base class is called multiple inheritance.
[IBM]