1. 程式人生 > >C++中括號()操作符的過載舉例及解析

C++中括號()操作符的過載舉例及解析

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 

可見,括號操作符的使用為物件加上()操作符。類名直接加()操作符為物件的建立。