Перегружаем операцию [ ], используя возвращение по ссылке
Сдесь нужно быть внимательным, так как объект используется
справа и слева от операции " = ".

//------------------------------------------------------------------------------------------------
#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;
}

//------------------------------------------------------------------------------------------------

Хакинг | Главная | Программирование

Hosted by uCoz