As stated, you have two different functions with the same name. You're calling the function that returns 0.0.
To call the other function you want to give it the two doubles THEN the string. Notice the different parameters of your two functions - which is the only reason this code would compile.
To call the performOperation(double, double, string), you'll need to have a forward declaration before main(). Also the op parameter is weirdly specified...
its fine, but as shown above, the result variable is not needed and the elses are also not needed because return ends the function (so to get to the next condition, not returning is sufficient, it has an implied else because of how return works). The compiler will probably do the exact same thing anyway, so this is just decluttering.
also consider braces on all compound statements (loops, conditions, etc). Its a little bit of clutter for one liners but it will save the day when it stops a bug where you added a 2nd line in a loop or whatnot. Here, it lets you do this:
1 2 3 4 5 6 7 8 9
if(oper == "/")
{
if(numTwo == 0)
{
cout << "Division by 0 not allowed." << endl;
return = 0.0;
}
result = numOne / numTwo;
}