Please use C++ language.
Function overloading is one way to achieve compile-time polymorphism. When two or more functions share the same name with a different parameter list, then this procedure is called function overloading, and the functions are called overloaded functions. Create a class called Multiplication with three overloaded functions to multiply two or three integers or two double literals. Use the following driver program to verify the functionality:
```cpp
#include <iostream>
class Multiplication {
public:
int mul(int a, int b) {
return a * b;
}
int mul(int a, int b, int c) {
return a * b * c;
}
double mul(double a, double b) {
return a * b;
}
};
int main() {
Multiplication obj;
std::cout << obj.mul(2, 5) << std::endl;
std::cout << obj.mul(7, 3, 1) << std::endl;
std::cout << obj.mul(4.4, 10.8);
return 0;
}
```