I am trying to write a C++ class that has some overloaded methods:
class Output
{
public:
    static void Print(bool value)
    {
        std::cout << value ? "True" : "False";
    }
    static void Print(std::string value)
    {
        std::cout << value;
    }
};
Now lets say I call the method as follows:
Output::Print("Hello World");
this is the result
True
So, why, when I have defined that the method can accept boolean and string, does it use the boolean overload when I pass in a non-boolean value?
EDIT: I come from a C#/Java environment, so quite new to C++!
 
     
     
     
     
     
    