A little on Function Overloading

K I just finished my bit of reading on function overloading and while I have the basic idea I got a question please. Let's say I have a function Multiply() which I overload by using different data types and return types, but same number of parameters

Example:

int Multiply(int x , int y);

double Multiply(double x , double y);

and in main() I have an option which ask the user to enter to numbers to multiply is it that C++ automatically knows which overloaded function to use?

cout << "Enter two numbers:";

cin >> x >> y; //x or y being a double or a integer

Multiply(x , y);