void operator()(){}
第一个()是运算符的名称 – 它是在对象上使用()时调用的运算符.
第二个()是用于参数的-参数两边的括号
重载”()”在c/c++中。”()”操作符表示的是一个函数调用符号,同样,它只能够通过类的成员函数来重载
class cls
{
public:
void operator() () //重载"()"操作符,"()"内无操作数
{
printf("HelloWorld!\n");
}
void operator() (const char* str) //重载"()","()"内的操作数是字符串
{
printf("%s", str);
}
};
int main(void)
{
cls cc;
cc();
cc("Hello Linux\n");
return 0;
}
结果 Hello Linux
在main()函数中,cc是一个类,但是”cc();”这样的语法却是函数调用