C++项目中,经常会遇到使用重载()操作符的地方,请看下面一个例子:
view plain
#include <iostream>
using namespace std;
class Clastype
{
public:
Clastype(int a)
{
cout << "Hello Clastype!" << a << endl;
}
bool operator ()(int b)
{
cout << "Hello Clastype()!" << b << endl;
return true;
}
};
int main()
{
Clastype a(1);
Clastype(2);
Clastype t = Clastype(3);
t(4);
Clastype *b = new Clastype(5);
(*b)(6);
}
运行结果如下:
view plain
@-desktop:~/test$ g++ -o o 6.cpp
@-desktop:~/test$ ./o
Hello Clastype!1
Hello Clastype!2
Hello Clastype!3
Hello Clastype()!4
Hello Clastype!5
Hello Clastype()!6
可见,括号操作符的使用为对象加上()操作符。类名直接加()操作符为对象的创建。