C++中括號()操作符的過載舉例及解析
阿新 • • 發佈:2019-01-09
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
可見,括號操作符的使用為物件加上()操作符。類名直接加()操作符為物件的建立。