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();”这样的语法却是函数调用

猜你喜欢

转载自www.cnblogs.com/bxynlbyx/p/11695029.html