Given the following methods:
// Method 1
void add(const std::string& header, bool replace);
//Method 2
void add(const std::string& name, const std::
Pointers have an implicit conversion to bool. Perhaps you have seen the following:
void myFunc(int* a)
{
if (a)
++(*a);
}
Now, in C++, implicit conversions between built-in types take precedence over conversions between class-types. So for example, if you had a class:
class Int
{
public:
Int(int i) {}
}
And you overloaded a function for long and Int:
void test(long n) {cout << "long";}
void test(Int n) {cout << "Int";}
You'll see that the following code calls the long overload:
int i;
test(i);