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>;
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;
}
/*************************************** **
Running result:
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>;
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;
}
/*************************************** **
Running result:
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.
**************************************** **/