http://blog.youkuaiyun.com/yang_lang/article/details/6725041
C++项目中,经常会遇到使用重载()操作符的地方,请看下面一个例子:
- #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);
- }
运行结果如下:
- @-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
可见,括号操作符的使用为对象加上()操作符。类名直接加()操作符为对象的创建。