重载 [] 运算符的问题 (c++)

Problems with overloading [] operator (c++)

我正在尝试编写一个小的 class“数组”,但是当我想为此 class 重载 [] 运算符时遇到问题。返回值必须具有 int 值,但它具有 Array&.

有我的代码:

Array.h:

#ifndef ARRAY_H
#define ARRAY_H

#include "QTableWidget"

class Array
{
public:
    Array();
    Array(int size);
    Array(int size, int start, int step);
    ~Array();

    int maxValue();
    int minValue();
    int averageValue();
    void chooseSort();
    void bubbleSort();
    void setSize(int size);
    int getSize();
    int getValue(int pos);
    void scalar(int number);

    Array operator +(Array &other);
    Array operator -(Array &other);
    Array operator *(int number);
    int& operator [](int index);

    Array(const Array &other);

    friend QTableWidget *operator <<(QTableWidget *widget, Array &other);
    friend QTableWidget *operator >>(QTableWidget *widget, Array &other);

private:
    void swap(int *a, int *b);

    int *array;
    int size;
};

#endif // ARRAY_H

我在 Array.cpp 中的重载运算符:

    int& Array::operator [](int index)
    {
        return (array[index]);
    }

还有我出错的函数(MainForm.cpp,我用Qt写的,不过没关系):

void MainForm::on_GetValue_released()
{
    int index = ui->ValueEdit->text().toInt();
    if(index > currentArr->getSize())return;
    int numer = currentArr[index];
    ui->ValueEdit->setText(QString::number(number));
}

我的错误是:

我应该怎么做才能得到正确答案?

我的 currentArr 是一个指针,所以我必须这样做:(*currentArr)[i​​ndex];