程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++讀書筆記之 下標運算符 [] 重載 運算符重載

C++讀書筆記之 下標運算符 [] 重載 運算符重載

編輯:C++入門知識

The subscript operator [] is normally used to access array elements. This operator can be overloaded to enhance the existing functionality of C++ arrays.

Following example explain how a subscript operator [] can be overloaded.

 

 

[cpp]
#include <iostream>  
using namespace std; 
const int SIZE = 1991; 
template <typename T> 
class safearay 

   private: 
      T arr[SIZE]; 
   public: 
      safearay() 
      { 
         int i; 
         for(i = 0; i < SIZE; i++) 
         { 
           arr[i] = i/3.0; 
         } 
      } 
      T &operator[](int i) 
      { 
          if( i > SIZE ) 
          { 
              cout << "Index out of bounds" <<endl; 
              // return first element.  
              return arr[0]; 
          } 
          return arr[i]; 
      } 
}; 
int main() 

   safearay <double> A; 
 
   cout << "Value of A[0] : " << A[0]<<endl; 
   cout << "Value of A[1949] : " << A[1949] <<endl; 
   cout << "Value of A[2013] : " << A[2013]<<endl; 
 
   return 0; 

/*****************************************
運行結果:
Value of A[0] : 0
Value of A[1949] : 649.667
Index out of bounds
Value of A[2013] : 0
 
Process returned 0 (0x0)   execution time : 5.580 s
Press any key to continue.
 
******************************************/ 

#include <iostream>
using namespace std;
const int SIZE = 1991;
template <typename T>
class safearay
{
   private:
      T arr[SIZE];
   public:
      safearay()
      {
         int i;
         for(i = 0; i < SIZE; i++)
         {
           arr[i] = i/3.0;
         }
      }
      T &operator[](int i)
      {
          if( i > SIZE )
          {
              cout << "Index out of bounds" <<endl;
              // return first element.
              return arr[0];
          }
          return arr[i];
      }
};
int main()
{
   safearay <double> A;

   cout << "Value of A[0] : " << A[0]<<endl;
   cout << "Value of A[1949] : " << A[1949] <<endl;
   cout << "Value of A[2013] : " << A[2013]<<endl;

   return 0;
}
/*****************************************
運行結果:
Value of A[0] : 0
Value of A[1949] : 649.667
Index out of bounds
Value of A[2013] : 0

Process returned 0 (0x0)   execution time : 5.580 s
Press any key to continue.

******************************************/


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved