N1++(100);
ифодасини операторгача бўлган қисмини алоҳида ажратиб
N1++;
кўрсатма деб тушунади.
Индекслаш операторини қайта юклаш
Квадрат қавслар (‘[‘,’]’) билан ёзиладиган индекслаш оператори бинар оператор ҳисобланади ва у қайта юкланишида оператор функция синфнинг битта аргументли ностатик функция–аъзоси сифатида аниқланиши керак. Функция аргументи ихтиёрий турда бўлиши ва у синф объектлари массивининг индекси деб қабул қилинади. Қуйидаги мисол буни намоён қилади:
#include
class BS_Massiv
{
int MaxIndex;
int * kButun;
public:
BS_Massiv(int Elem_Soni)
~BS_Massiv(){delete kButun;}
int & operator[](int index);
};
BS_Massiv::BS_Massiv(int Elem_Soni)
{
kInt=new int(Elem_Soni);
MaxIndex=Elem_Soni;
}
int & BS_Massiv::operator[](int index)
{
static int iXato=-1;
if(index>=0 && index
else
{
cout<<”Xato: Massiv chegarasidan chiqish ro’y berdi!”;
cout<
return iXato;
}
}
main()
{
BS_Massiv vector(5);
for(int i=0; i<5; i++)
vector[i]=i;
for(int i=0; i<=5; i++)
cout<<” vector[“<
return 0;
}
Программада 5 та, бутун сон туридаги элементлардан ташкил топган vector массиви BS_Massiv синфининг объекти сифатида эълон қилинган ва унга қийматлар берилиб, кейин чоп қилинган. Индекс аргументи i=5 бўлганда хатолик ҳақида хабар берилади. Программа ишлаши натижасида экранга қуйидагилар чиқади:
vector[0]=0
vector[1]=1
vector[2]=2
vector[3]=3
Do'stlaringiz bilan baham: |