Operator overloading

if we overloaded the operator ( ) and we have default constructor also than why both are running?
#include
using namespace std;
class fun{
public:

void operator()(string s){
cout<<“wow!”+s;
}
fun(string s)
{
cout<<“wow!”+s;
}
fun(){
cout<<“in default constructor”;}

};

int main()
{
fun f;
f(" What a time");
//fun f(" What a time “);
//f(” What a time ");
//fun f;
//fun f(‘hii’);
}

@gauravlodhi21,

Please make sure you share Coding Blocks IDE of your code, it really helps us a lot. Thanks.

Here,

fun f; -> Calls Constructor -> Prints “in default constructor"
f(" What a time"); -> Calls the overloaded operator -> Prints “wow!” + s