Я перегружен как индекс оператора и операторами присваивания, и я пытаюсь получить правильное значение для оператора присваивания например Array x; x[0]=5;
путем перегрузки оператора подстрочного я могу получить значение 0, но когда я перегрузить оператор присваивания это делает назначение, но он не использует мою перегруженную функцию, потому что vaiable 2 должен иметь значение 5.перегрузка оператора присваивания с оператором индекса
class Array
{
public:
int *ptr;
int one,two;
Array(int arr[])
{
ptr=arr;
}
int &operator[](int index)
{
one=index;
return ptr[index];
}
int & operator=(int x){
two=x;
return x;
}
};
int main(void)
{
int y[]={1,2,3,4};
Array x(y);
x[1]=5;
cout<<x[0]<<endl;
}
Я думаю, что ответ @Dietmar Kühl - лучший ответ. Потому что он также показывает использование оператора int(), так что 'cout << x [0] << endl;' также может работать. Может быть, это должен быть принятый ответ. – VinGarcia