Перегружаем операцию [ ], используя возвращение по ссылке
Сдесь нужно быть внимательным, так как объект используется
справа и слева от операции " = ".
//------------------------------------------------------------------------------------------------
#include <iostream>
#include <conio.h>
#include <process.h>
using namespace std;
const int LIMIT = 100; //Назначаем глобальную константу
class safearray
{
private:
int arr[LIMIT];
public:
int& operator[](int n) //Осуществляем возвращениие по ссылке, так как объект используется слева от операции "="
{
if(n<0 || n>=LIMIT)
{cout<<":( index!!!"; exit(1);}
return arr[n];
}
};
//////////////////////////////////////////////////////////////////////////
int main()
{
safearray sa1;
for(int j=0; j<LIMIT; j++)
sa1[j]=j*10; //Используем функцию слева от знака =
for(int j=0; j<LIMIT; j++)
{
int temp = sa1[j]; //Используем функцию справа от знака =
cout<<"Element "<<j<<" Raven "<< temp<<endl; //Выводим результат на экран
}
getch();
return 0;
}
//------------------------------------------------------------------------------------------------